前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >md5算法

md5算法

作者头像
mukekeheart
发布2018-02-28 16:31:31
1.2K0
发布2018-02-28 16:31:31
举报

md5算法

不可逆的:原文--》密文、用系统的API可以实现;

123456 ---密文

1987 ----密文;

 算法步骤:

  • 1、用每个byte去和11111111做与运算并且得到的是int类型的值: 

            byte & 11111111;

  • 2、把int 类型转成 16进制并返回String类型;
  • 3、不满八个二进制位就补全;
代码语言:javascript
复制
 1 public static void main(String[] args) throws NoSuchAlgorithmException {
 2 
 3       MessageDigest digest = MessageDigest.getInstance("md5");
 4 
 5       String password = "123456";

 9       byte [] result = digest.digest(password.getBytes());
10 
11       StringBuffer buffer  = new StringBuffer();
12 
13       for(byte b : result){ 
15           //0xff是十六进制,十进制为255
19          int nuber =  b & 0xff;
21          String str = Integer.toHexString(nuber);
23          if(str.length()==1){
25             buffer.append("0"); 
27          }
29          buffer.append(str);
33       } 
35       //这就是MD5加密得到的值
37       System.out.println(buffer);
38 
39    }

  会抛出没有事先准备的算法异常NoSuchAlgorithmException;

  • 4、网站验证算法是否正确(www.cmd5.com)、加密再加密再演示
  • 5、密码加盐,即byte相与的数不上标准的oxff,我们进行修改为oxfff或其他的
  • 6、银行密码保存是进行了15~30次重复加密,破解非常复杂,不用担心安全性
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-08-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档