您的位置 首页 java

干货4:史上最强的加密技术Java中关于密码加密的算法MD5

摘要 MD5 的返回结果是128位 2进制 数字;通常显示摘要使用用16进制;

摘要:比较两个数据的完整性;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.length*2];

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);

摘要算法通用版算法,简单,推荐使用,如上图

摘要算法二,比较复杂,可以了解;如下图

摘要算法二,接下面,如下继续是摘要算法二

注:摘要算法一般用于写登录的时候,对密码进行加密的时候使用;希望有所帮助

文章来源:智云一二三科技

文章标题:干货4:史上最强的加密技术Java中关于密码加密的算法MD5

文章地址:https://www.zhihuclub.com/197729.shtml

关于作者: 智云科技

热门文章

网站地图