zoukankan      html  css  js  c++  java
  • md5加密以及可逆的加密解密算法

    md5加密

    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是被山东的一个女博士破解过,纯属传说。

  • 相关阅读:
    讲课专用——线段树——最长上升子序列
    讲课专用——线段树——最长连续空位
    讲课专用——线段树——BSS
    求背景图
    致备战noip2018的勇士
    TNS-12547 Linux Error: 104: Connection reset by pe (转载)
    清理Oracle安装目录里的一些日志信息
    tmp_table_size
    11gr2 alert日志中报TNS-12535 TNS-00505原因及解决方法 (转载)
    systemstate dump 介绍
  • 原文地址:https://www.cnblogs.com/hkdpp/p/8334210.html
Copyright © 2011-2022 走看看