前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >md5加密算法是可逆的_md5为什么不可逆

md5加密算法是可逆的_md5为什么不可逆

作者头像
全栈程序员站长
发布2022-09-21 19:10:26
6310
发布2022-09-21 19:10:26
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

md5加密

代码语言:javascript
复制
package gov.mof.fasp2.gcfr.adjustoffset.adjust; import java.security.MessageDigest; public class MD5Test { /** * 测试主函数 * @param args */ public static void main(String[] args) { String s = "admin"; System.out.println("原始:" + s); System.out.println("MD5后:" + MD5(s)); System.out.println("(可逆)加密的:" + JM(s)); System.out.println("(可逆)解密的:" + JM(JM(s)));//两次解密  } /** * 生成32位码 * @param s - 需要加密的字符串 * @return */ public final static String MD5(String s) { try { byte[] btInput = s.getBytes(); MessageDigest mdInst = MessageDigest.getInstance("MD5"); mdInst.update(btInput); byte[] md = mdInst.digest(); StringBuffer sb = new StringBuffer(); for (int i = 0; i < md.length; i++) { int val = ((int) md[i]) & 0xff; if (val < 16) sb.append("0"); sb.append(Integer.toHexString(val)); } return sb.toString(); } catch (Exception e) { return null; } } /** * 加密解密算法 执行一次加密,两次解密 (可逆加解密算法) * @param s - 需要加密的字符串 * @return */ public static String JM(String inStr) { char[] a = inStr.toCharArray(); for (int i = 0; i < a.length; i++) { a[i] = (char) (a[i] ^ 't'); } String k = new String(a); return k; } }

以上代码输出结果:

md5加密算法是可逆的_md5为什么不可逆
md5加密算法是可逆的_md5为什么不可逆

注:md5算法是不可逆的,所以经过md5加密过的字符串是无法还原(解密)的。一般用作登陆验证的时候,也是要先经过md5加密然后去数据库验证密码是否正确。

据说md5是被山东的一个女博士激活成功教程过,纯属传说。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/168181.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

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