标签:
如今,无论是在哪个方面,数据的安全性尤为重要。
md5加密是一个不可逆的操作,当然,如果你对一个数据进行简单的md5加密,还是有一些网站可以根据你的密文进行解密。如若想更安全,可以对数据进行多次加密。下面我就只加密一次来说:
将数据进行md5加密
>
* @param password 要加密的密码
* @return 加密后的密文
* @throws NoSuchAlgorithmException
public static String md5Password(String password) throws NoSuchAlgorithmException{
//获取实例:传进去的 加密方式我们要进行的是md5,所以传进去的是md5字符串
MessageDigest degiest = MessageDigest.getInstance("md5");
byte[] result =degiest.digest(password.getBytes());
StringBuffer sb = new StringBuffer();
for (byte b : result) {
int number = b&0xff+1;
String hex=Integer.toHexString(number);
if (hex.length()==1) {
sb.append("0"+hex);
}
else {
sb.append(hex);
}
}
return sb.toString();
}
md5还可以查询文件的特征码,网上下载一个东西的时候,有时会提供一个md5值,这有什么用的呢,主要是查看是否被人为修改过,不同的文件特征码不同。如果利用下面的代码,查询文件的特征码跟提供的md5一致,则没有被修改过的,获取拿到这个值来看你需求做其它事。下面看代码:
>
* @查询文件的特征码
* @param path 文件的路径
* @return null 查询出现异常
public static String checkMd5file(String path){
try {
MessageDigest digest =MessageDigest.getInstance("md5");
File file = new File(path);
FileInputStream fis = new FileInputStream(file);
int length = -1;
byte[] buffer = new byte[1024];
while((length = fis.read(buffer))!=-1){
digest.update(buffer,0,length);
}
byte[] result = digest.digest();
StringBuilder sb= new StringBuilder();
for (byte b : result) {
int number= b&0xff;
String hex=Integer.toHexString(number);
if (hex.length()==1) {
sb.append("0"+hex);
}
else {
sb.append(hex);
}
}
return sb.toString();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
标签:
原文地址:http://blog.csdn.net/sinat_34396176/article/details/51352447