- 浏览: 821894 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (488)
- struts1 (4)
- spring (13)
- extjs (36)
- mysql (3)
- sqlserver (2)
- oracle (37)
- 杂谈 (11)
- 面试相关 (35)
- Java基础知识总结 (5)
- Java重要知识点 线程和io流知识点 (6)
- 服务器相关 (1)
- 生活 (1)
- jsp (7)
- servlet (2)
- junit (3)
- struts2 (9)
- 开发必备 (4)
- 使用开发工具总结的知识 (4)
- ibatis (12)
- ajax (2)
- dwr (2)
- jquery (1)
- 设计模式 (4)
- Lucene的学习 (5)
- 经验总结 (19)
- mysql全文搜索相关 (7)
- hibernate (33)
- Sphinx (1)
- log4j的总结 (1)
- 敏捷开发 (9)
- 持续集成 (15)
- UML使用总结 (1)
- Scrum (1)
- OO(面向对象编程) (1)
- struts1和struts2总结 (1)
- 数据库加密 (1)
- 多线程和Socket编程 (6)
- PowerDesigner (2)
- 权限相关 (1)
- ant应用总结 (4)
- 面试必知知识点总结 (6)
- io流与nio流总结 面试相关 (1)
- 敏捷管理工具的使用 (7)
- hsqldb相关 (1)
- svn源码相关 (2)
- debug调试技巧总结 (1)
- hibernate和ibatis对比相关 (6)
- eclipse mylyn 插件的使用总结 (2)
- fisheye使用总结 (2)
- java泛型总结 (1)
- ssh整合总结 (10)
- SpringSide的学习总结 (1)
- JPA学习总结 (2)
- RoR 总结 (2)
- 模型驱动 总结 (1)
- Oracle SQL优化技巧 (4)
- 数据库相关资料 (1)
- oracle练习相关 (4)
- PowerDesigner 使用总结 (2)
- Struts实现国际化相关 (2)
- 权限框架 Spring Security (1)
- freemarker使用总结 (1)
- jsp servlet总结相关 (3)
- Java NIO总结 (1)
- 自己学习必须 (3)
- 蝴蝶容器相关 (2)
- eclipse插件的使用 (1)
- myeclipse的使用 (1)
- flex相关 (1)
- javaeye重生后总结的知识点 (2)
- 公司学习总结 (3)
- JAXB 相关 (1)
- ECSide (1)
- EdoJs 企业ajax框架 (1)
- RSA加密算法 (1)
- jbpm相关 (1)
- JMF原理 (1)
- MyEclipse使用总结 (1)
- Funsion Charts 相关总结 (3)
- 常用知识2011 (2)
- Flex与Java整合 (1)
- IBM WebSphere相关 (1)
- jQuery使用技巧 (2)
- 2011年面试相关知识点总结 (2)
- sqlserver开发相关 (8)
- eclipse 打jar相关 (2)
- Oracle/Mysql/SqlServer比较 (1)
- WebService Axis1.4开发相关 (4)
- 进制数的转换 总结 (1)
- WebService Axis2.0开发相关 (0)
- iteye Struts2 Spring Hibernate整合相关 (3)
- iteye osgi资料相关总结 (1)
- iteye ifos相关相关 (1)
- iteye 国际化相关 (1)
- iteye Hibernate缓存机制 (4)
- iteye Struts2 总结 (1)
- iteye Struts标签总结 (0)
- iteye web配置文件大全 (6)
- iteye Efs 框架总结 (1)
- iteye sql优化 (2)
- iteye 大数据量高并发的数据库优化 (1)
- iteye 开发相关 (1)
- iteye s1sh 和 s2sh整合中的问题以及解决 (1)
- iteye s1sh整合实例 (1)
- iteye s2sh整合实例 (1)
- iteye 面试相关 基础篇 (1)
- iteye Android相关 (1)
- iteye 面试相关 Web篇 (1)
- iteye Sql Server相关 (0)
- iteye struts1与struts2比较 (1)
- iteye jquery 和Struts2 (0)
- iteye struts2与其他插件整合 (0)
- iteye jquery 开发相关 (1)
- iteye eclipse结合spket(Ext,Jquery)开发相关 (0)
- iteye myeclipse 使用技巧相关 (0)
- iteye Memcached 缓存系统相关 (0)
- iteye 常用软件相关 (0)
- iteye 最新技术预览 AjaxSwing (0)
- iteye struts上传下载相关 (0)
- iteye 新技术相关 (0)
- test (0)
- iteye 开发Java游戏相关 (0)
- iteye Java反编译 (0)
- iteye XML解析相关 (0)
- iteye 压缩ZIP相关 (0)
- iteye 面试相关 (0)
- iteye Android开发相关 (4)
- csdn (0)
- e-inoc (0)
- iteye http错误码对应说明 (0)
- iteye 面试扩展知识点 (0)
- iteye oracle面试相关 存储过程,触发器,游标等 (0)
- iteye english study (0)
- iteye starflow工作流引擎 (0)
- iteye IBM WebSphere Application Server Toolkit使用相关 (0)
- iteye spring3 (0)
- iteye mybatis (0)
- iteye js技巧总结 (0)
- iteye SEO优化相关 (2)
- iteye QUI网页界面集成框架 (1)
- iteye AjaxAnywhere (1)
- iteye Nutz相关 (1)
- iteye ibatis技巧 (0)
- iteye dwz (0)
- 128个ajax/javascript框架 (0)
- iteye 2012 Java Swing教程 (1)
- iteye 码头集装箱相关 (1)
- iteye swing (2)
- 兼职工作 (0)
- 2012 新总结的面试相关知识点 常用知识点 (1)
- 淘宝网店相关 (0)
- oracle 常用函数 2012新总结 (1)
- 我的时尚潮流屋 (0)
- 2012 年 面试新总结知识 (1)
- 技巧 (1)
- 2013总结 (1)
- 2015工作相关 (3)
- springmvc (5)
- EasyPR-Java (1)
- java (2)
- editplus 4.0 注册码 (1)
- android (1)
- oracle连接数据库相关 (1)
- 编程资料总结 (2)
- 20160808 (1)
- visio 2013 (1)
最新评论
-
drew926:
泛型的类型参数可以有多个?这是java哪个版本支持的?
java泛型总结 -
listenan:
赞!非常感谢。
Scrum总结 -
cwscwj:
写的很深刻,谢谢,看了一遍,过段时间打算再看一遍。
Scrum总结 -
hwedwin:
w
Struts 2中的OGNL\EL的使用总结 -
lanni2460:
不错 很好 支持……
sqlserver三个驱动包下载
package com.lxitedu.tools.generate;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import com.dcivision.framework.Crypt;
import com.dcivision.framework.SystemParameterConstant;
import com.dcivision.framework.SystemParameterFactory;
/**
* suit the php
*
* @author Administrator
*
*/
public class MD5 {
// 解密类: Crypt
private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d",
"e", "f" };
public static void main(String[] args) throws Exception {
getMD5EncryptedString("");
String encrptedPwd = Crypt.encrypt("diaoer",
SystemParameterFactory.getSystemParameter(SystemParameterConstant.CRYPTO_SALT));
System.out.println(getMD5EncryptedString("diaoer"));
System.out.println(encrptedPwd);
}
public static String getMD5EncryptedString(String sourceString) throws NoSuchAlgorithmException {
// 加密后的字符串
// 创建具有指定算法名称的信息摘要
MessageDigest md = MessageDigest.getInstance("MD5");
// 使用指定的字节数组对摘要进行最后更新,然后完成摘要计算
byte[] results = md.digest(sourceString.getBytes());
return byteArrayToHexString(results);
}
private static String byteArrayToHexString(byte[] b) {
StringBuffer resultSb = new StringBuffer();
for (int i = 0; i < b.length; i++) {
resultSb.append(byteToHexString(b[i]));
}
return resultSb.toString();
}
/**
* 将一个字节转化成十六进制形式的字符串
*/
private static String byteToHexString(byte b) {
int n = b;
if (n < 0)
n = 256 + n;
int d1 = n / 16;
int d2 = n % 16;
return hexDigits[d1] + hexDigits[d2];
}
}
解密:
/*
* @(#)Crypt.java
*
* Copyright (c) 2003 DCIVision Ltd
* All rights reserved.
*
* This software is the confidential and proprietary information of DCIVision
* Ltd ("Confidential Information"). You shall not disclose such Confidential
* Information and shall use it only in accordance with the terms of the license
* agreement you entered into with DCIVision Ltd.
*/
package com.dcivision.framework;
/**
* Crypt.java
*
* This class is to provide encrypt and decrypt function by a password provided.
*
* @author Rollo Chan
* @company DCIVision Limited
* @creation date 25/06/2003
* @version $Revision: 1.6 $
*/
public class Crypt {
public static final String REVISION = "$Revision: 1.6 $";
private Crypt() {
}
/**
* encrypt
*
* Encrypt a string with a password
*
* @param buffer
* The buffer to be encrypted
* @param password
* The password
*/
public static String encrypt(String buffer, String password) {
StringBuffer sbSpace = new StringBuffer(" ");
buffer = sbSpace.toString() + buffer + sbSpace.toString();
char[] temp = new char[buffer.length()];
int a = 0;
for (int i = 0; i < buffer.length(); i++) {
int b = password.charAt(a);
a++;
if (a >= password.length()) {
a = 0;
}
int c = (int) buffer.charAt(i);
temp[i] = (char) (c ^ b);
}
return toHex(temp);
}
/**
* decrypt
*
* Decrypt a string with a password
*
* @param buffer
* The buffer to be decrypted
* @param password
* The password
*/
public static String decrypt(String buffer, String password) {
char[] temp = toChar(buffer);
String result = "";
int a = 0;
for (int i = 0; i < temp.length; i++) {
int b = password.charAt(a);
a++;
if (a >= password.length()) {
a = 0;
}
int c = temp[i];
result += (char) (c ^ b);// ^ 按位异或XOR 就是二个操作数只有一个是1的话结果就是 1 否则就是 0 。
}
return result.trim();
}
private static int hexToInt(char c) {
if (c >= '0' && c <= '9') {
return c - '0';
}
return (c - 'a') + 10;
}
private static char hexToChar(String buffer) {
int l = hexToInt(buffer.charAt(1));
int h = hexToInt(buffer.charAt(0));
return (char) (h * 16 + l);
}
private static String toHex(char[] buffer) {
String temp = "";
String result = "";
for (int i = 0; i < buffer.length; i++) {
int c = buffer[i];
temp = Integer.toHexString((int) c);
if (temp.length() == 1) {
temp = "0" + temp;
}
result += temp;
}
return result;
}
private static char[] toChar(String buffer) {
char[] result = new char[buffer.length() / 2];
for (int i = 0; i < buffer.length(); i += 2) {
if (i + 2 <= buffer.length()) {
String temp = buffer.substring(i, i + 2);
result[i / 2] = (char) hexToChar(temp);
}
}
return result;
}
/**
* main
*
* @param arg
*/
public static void main(String arg[]) {
// String buffer = arg[0];
// String password = arg[1];
String buffer = "diaoer";
String password = "test";
String temp = Crypt.encrypt(buffer, password);
System.out.println("buffer = \"" + buffer + "\"");
System.out.println("password = \"" + password + "\"");
System.out.println("encrypted = \"" + temp + "\"");
System.out.println("decrypted = \"" + Crypt.decrypt(temp, password) + "\"");
}
}
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import com.dcivision.framework.Crypt;
import com.dcivision.framework.SystemParameterConstant;
import com.dcivision.framework.SystemParameterFactory;
/**
* suit the php
*
* @author Administrator
*
*/
public class MD5 {
// 解密类: Crypt
private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d",
"e", "f" };
public static void main(String[] args) throws Exception {
getMD5EncryptedString("");
String encrptedPwd = Crypt.encrypt("diaoer",
SystemParameterFactory.getSystemParameter(SystemParameterConstant.CRYPTO_SALT));
System.out.println(getMD5EncryptedString("diaoer"));
System.out.println(encrptedPwd);
}
public static String getMD5EncryptedString(String sourceString) throws NoSuchAlgorithmException {
// 加密后的字符串
// 创建具有指定算法名称的信息摘要
MessageDigest md = MessageDigest.getInstance("MD5");
// 使用指定的字节数组对摘要进行最后更新,然后完成摘要计算
byte[] results = md.digest(sourceString.getBytes());
return byteArrayToHexString(results);
}
private static String byteArrayToHexString(byte[] b) {
StringBuffer resultSb = new StringBuffer();
for (int i = 0; i < b.length; i++) {
resultSb.append(byteToHexString(b[i]));
}
return resultSb.toString();
}
/**
* 将一个字节转化成十六进制形式的字符串
*/
private static String byteToHexString(byte b) {
int n = b;
if (n < 0)
n = 256 + n;
int d1 = n / 16;
int d2 = n % 16;
return hexDigits[d1] + hexDigits[d2];
}
}
解密:
/*
* @(#)Crypt.java
*
* Copyright (c) 2003 DCIVision Ltd
* All rights reserved.
*
* This software is the confidential and proprietary information of DCIVision
* Ltd ("Confidential Information"). You shall not disclose such Confidential
* Information and shall use it only in accordance with the terms of the license
* agreement you entered into with DCIVision Ltd.
*/
package com.dcivision.framework;
/**
* Crypt.java
*
* This class is to provide encrypt and decrypt function by a password provided.
*
* @author Rollo Chan
* @company DCIVision Limited
* @creation date 25/06/2003
* @version $Revision: 1.6 $
*/
public class Crypt {
public static final String REVISION = "$Revision: 1.6 $";
private Crypt() {
}
/**
* encrypt
*
* Encrypt a string with a password
*
* @param buffer
* The buffer to be encrypted
* @param password
* The password
*/
public static String encrypt(String buffer, String password) {
StringBuffer sbSpace = new StringBuffer(" ");
buffer = sbSpace.toString() + buffer + sbSpace.toString();
char[] temp = new char[buffer.length()];
int a = 0;
for (int i = 0; i < buffer.length(); i++) {
int b = password.charAt(a);
a++;
if (a >= password.length()) {
a = 0;
}
int c = (int) buffer.charAt(i);
temp[i] = (char) (c ^ b);
}
return toHex(temp);
}
/**
* decrypt
*
* Decrypt a string with a password
*
* @param buffer
* The buffer to be decrypted
* @param password
* The password
*/
public static String decrypt(String buffer, String password) {
char[] temp = toChar(buffer);
String result = "";
int a = 0;
for (int i = 0; i < temp.length; i++) {
int b = password.charAt(a);
a++;
if (a >= password.length()) {
a = 0;
}
int c = temp[i];
result += (char) (c ^ b);// ^ 按位异或XOR 就是二个操作数只有一个是1的话结果就是 1 否则就是 0 。
}
return result.trim();
}
private static int hexToInt(char c) {
if (c >= '0' && c <= '9') {
return c - '0';
}
return (c - 'a') + 10;
}
private static char hexToChar(String buffer) {
int l = hexToInt(buffer.charAt(1));
int h = hexToInt(buffer.charAt(0));
return (char) (h * 16 + l);
}
private static String toHex(char[] buffer) {
String temp = "";
String result = "";
for (int i = 0; i < buffer.length; i++) {
int c = buffer[i];
temp = Integer.toHexString((int) c);
if (temp.length() == 1) {
temp = "0" + temp;
}
result += temp;
}
return result;
}
private static char[] toChar(String buffer) {
char[] result = new char[buffer.length() / 2];
for (int i = 0; i < buffer.length(); i += 2) {
if (i + 2 <= buffer.length()) {
String temp = buffer.substring(i, i + 2);
result[i / 2] = (char) hexToChar(temp);
}
}
return result;
}
/**
* main
*
* @param arg
*/
public static void main(String arg[]) {
// String buffer = arg[0];
// String password = arg[1];
String buffer = "diaoer";
String password = "test";
String temp = Crypt.encrypt(buffer, password);
System.out.println("buffer = \"" + buffer + "\"");
System.out.println("password = \"" + password + "\"");
System.out.println("encrypted = \"" + temp + "\"");
System.out.println("decrypted = \"" + Crypt.decrypt(temp, password) + "\"");
}
}
相关推荐
具体的解密过程取决于加密策略,如果只是简单地MD5加密,那么通常不会解密,而是直接在连接池中使用加密后的密码连接数据库。 在给定的文件`hibernateExample1`中,可能包含了一个使用Hibernate框架的示例,...
总结起来,这个"md5加密数据库"项目是一个教育性的编程示例,展示了如何在VB和C#环境中使用MD5算法对数据库中的密码进行加密,以增强数据安全性。它对于初学者理解加密原理和.NET框架下的加密操作非常有帮助。然而,...
### 在Java中使用MD5进行密码加密 #### 知识点概述 在现代软件开发过程中,安全性至关重要。尤其是在处理敏感信息如用户密码时,确保数据的安全性和隐私性尤为重要。MD5(Message-Digest Algorithm 5)是一种广泛...
但要注意,尽管单向性使得MD5在理论上是安全的,但由于彩虹表的存在,一些常见的密码可以通过预先计算的哈希值进行反查,因此现在MD5已经不再被视为足够安全的密码加密方式,更安全的哈希算法如SHA-256被更多采用。...
在这个例子中,开发者使用ADO进行数据库操作,比如存储经过MD5哈希处理的密码。虽然描述中提到代码没有使用try...catch错误处理结构,这是一种最佳实践,用于捕获和处理运行时可能出现的异常,确保程序的稳定性和...
本文将详细讲解如何在ASP.NET中实现密码的加密,以确保数据的安全性,特别是采用MD5算法进行密码哈希加密的实例。 一、MD5概述 MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它能够将任意长度的...
5. **验证密码**:在用户登录时,获取输入的密码,结合存储的盐重新进行MD5加盐哈希,然后与数据库中存储的哈希值进行比较。如果两者匹配,则验证成功。 MD5加盐相对于未加盐的MD5提高了安全性,但需要注意的是,...
在实际应用中,可以通过创建`Md5Encrypt`类的实例并调用其`Encrypt`方法来对字符串进行MD5加密。 ```java Md5Encrypt md = new Md5Encrypt(); String password = "your_password"; String encryptedPassword = md....
通常,当用户输入密码时,系统会计算输入的密码的MD5哈希值,然后与数据库中存储的已哈希的密码进行比较。如果两者匹配,则认为密码正确。这种方式避免了明文密码的直接存储,增加了安全性。但需要注意的是,MD5的...
在登录注册系统中,MD5通常用于对用户输入的密码进行加密处理,使得即使数据库被泄露,原始密码也无法直接获取,提高了安全性。 在登录界面,用户输入用户名和密码后,后台程序会接收到这些数据。在存储之前,密码...
在MD5加密实例中,我们通常会遇到以下几个关键知识点: 1. **MD5原理**:MD5算法基于消息的分块处理和一系列复杂的数学运算,包括异或、位移和加法等,确保即使是微小的数据变化也会导致生成的哈希值显著不同,实现...
这段代码展示了如何在Java中使用MD5对字符串进行加密。首先,我们创建了一个`MessageDigest`实例,指定使用MD5算法。然后,将要加密的字符串转换为字节数组并传递给`digest()`方法。得到的哈希值是一组字节,我们将...
本示例代码聚焦于如何在WinForm应用程序中使用MD5(Message-Digest Algorithm 5)算法对用户登录密码进行加密,确保数据的安全性。 MD5是一种广泛使用的哈希函数,能够将任意长度的信息映射为固定长度的输出,通常...
通常,我们会将用户密码通过MD5加密后存储在数据库中,当用户输入密码时,再进行MD5加密并与数据库中的值比较,以验证密码的正确性。 在提供的压缩包文件中,"MD5.doc"可能是关于MD5算法的详细文档,涵盖了MD5的...
在上述示例中,自定义的`MyPasswordEncoder`类扩展了`MessageDigestPasswordEncoder`,并重写了`isPasswordValid`方法,以使用MD5算法进行密码验证。 Spring Security的配置文件中,`<password-encoder>`元素用于...
当用户注册时,其密码不会直接存储,而是先通过MD5算法加密成摘要,然后在用户登录时,系统同样对输入的密码进行MD5加密,比较两个摘要是否相同来验证密码是否正确。这样即使数据库被泄露,攻击者也无法直接获取到...
在实际操作中,我们通常会先对用户输入的明文密码进行MD5加密,然后将得到的MD5摘要存入数据库。例如,`RegisterSQL`可能是一个包含用户注册信息的SQL脚本,其中就包括了将MD5加密后的密码写入数据库的语句。以下是...
MD5(Message-Digest Algorithm 5)是一种广泛使用的密码散列函数,能够将任意长度的消息压缩为一个固定长度(通常是128位)的散列值或指纹。这种算法在数据完整性验证、密码存储等方面有着广泛的应用。 ### MD5...
在提供的代码示例中,展示了如何在ASP.NET中使用MD5对字符串进行加密,分为两种方式:普通加密和密码方式加密。 1. **普通加密**: 在`Page_Load`事件处理程序中,首先获取`source.Text`的Unicode编码形式的字节...
当用户登录时,我们再次对用户输入的密码进行MD5加密,然后与数据库中存储的摘要进行比较。如果两者相等,那么就认为密码正确;否则,密码错误。这样做的好处是即使数据库被泄露,攻击者也无法直接获得用户的原始...