择要:比较两个数据的完全性;MD5;利用择要存密码;将择要存到数据库中;
择要一样,数据一样;数据和摘假如逐一对应的关系;
短的密码打算算择要,可以再加盐(盐一定是一样的);就不会被反查;

创建择要的方法1:
import java.security.MessageDigest;
//1.创建择要算法工具MessageDigest;
String str=\"大众dssfsgdggffggf\"大众;
MessageDigest md5=MessageDigest.getInstance(\公众MD5\"大众);
//2将要加密的数据提交到MD5工具中;
byte[] data=str.getBytes(\公众utf-8\公众);
md5.update(data);//数据提交到MD5
//3.获取打算后的择要
byte[] md=md5.digest();
String hex=hex(md);
System.out.println(hex);
//写一个算法hex(md):将2进制转换为16进制字符串;
public String hex(byte[] ary){
String digi=\"大众0123456789abcdef\"大众;
char[] hex=new char[ary.length2];
int i=0;//i代表hex数组的下标;
for(int b:ary){
b=b&0xff;//去掉高24位,相称于去掉负数的影响;
int b1=(b>>4)&0xff;
int b2=b&0xff;
char c1=digi.charAt(b1);
char c2=digi.charAt(b2);
hex[i++]=c1;
hex[i++]=c2;
}
return new String(hex);
}
创建择要的算法2:
//导入一个包;commons-codec;利用这个包中现成的算法;
import org.apache.commons.codec.digest.DigestUtils;
String str=\公众dssfsgdggffggf\公众;
MessageDigest md5=MessageDigest.getInstance(\公众MD5\"大众);
byte[] data=str.getBytes(\公众utf-8\"大众);
md5.update(data);//数据提交到MD5
byte[] md=md5.digest();
String hex=Hex.encodeHexString(md);
择要算法通用版算法,大略,推举利用,如上图
择要算法二,比较繁芜,可以理解;如下图
择要算法二,接下面,如下连续是择要算法二
注:择要算法一样平常用于写登录的时候,对密码进行加密的时候利用;希望有所帮助