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

  • 相关阅读:
    互联网协议入门
    【HTTP】图解HTTPS
    《计算机本科生理想的学习计划》
    VC++ TinyXML
    TinyXML 在vs2010 VC++使用
    Hadoop2.4.1入门实例:MaxTemperature
    xcode6
    Android利用广播监听设备网络连接(断网)的变化情况
    编程算法
    Google的Guava之IO升华
  • 原文地址:https://www.cnblogs.com/hkdpp/p/8334210.html
Copyright © 2011-2022 走看看