java api MD5加密使用

    xiaoxiao2026-08-19  7

    因为毕业设计的缘故,研究了一下网站的加密,做了一个MD5加密,也算是一个小小的加密、但是在Web程序上不论是在客户端还是服务端加密理论上都是不安全的,我们要使用HTTPS这个协议来保证通信的全加密再加上MD5加密才比较安全、MD5是一个不可逆的加密算法、所以一般来说只要加密就好、不需要解密程序.数据库中存入的也是加密过得密码就行了、下面直接上代码

    [java]  view plain copy public  class  EncryptionByMD5 {          public static String getMD5(byte[] source) {           String s = null;           char hexDigits[] = { '0''1''2''3''4''5''6''7''8''9',                   'a''b''c''d''e''f' };// 用来将字节转换成16进制表示的字符           try {               java.security.MessageDigest md = java.security.MessageDigest                       .getInstance("MD5");               md.update(source);               byte tmp[] = md.digest();// MD5 的计算结果是一个 128 位的长整数,               // 用字节表示就是 16 个字节               char str[] = new char[16 * 2];// 每个字节用 16 进制表示的话,使用两个字符, 所以表示成 16               // 进制需要 32 个字符               int k = 0;// 表示转换结果中对应的字符位置               for (int i = 0; i < 16; i++) {// 从第一个字节开始,对 MD5 的每一个字节// 转换成 16                   // 进制字符的转换                   byte byte0 = tmp[i];// 取第 i 个字节                   str[k++] = hexDigits[byte0 >>> 4 & 0xf];// 取字节中高 4 位的数字转换,// >>>                   // 为逻辑右移,将符号位一起右移                   str[k++] = hexDigits[byte0 & 0xf];// 取字节中低 4 位的数字转换                  }               s = new String(str);// 换后的结果转换为字符串              } catch (NoSuchAlgorithmException e) {               // TODO Auto-generated catch block               e.printStackTrace();           }           return s;       }              public static void main(String[] args){                  String test=EncryptionByMD5.getMD5("test".getBytes());           System.out.println(test);          }   }   输出结果为:098f6bcd4621d373cade4e832627b4f6

    因为毕业设计的缘故,研究了一下网站的加密,做了一个MD5加密,也算是一个小小的加密、但是在Web程序上不论是在客户端还是服务端加密理论上都是不安全的,我们要使用HTTPS这个协议来保证通信的全加密再加上MD5加密才比较安全、MD5是一个不可逆的加密算法、所以一般来说只要加密就好、不需要解密程序.数据库中存入的也是加密过得密码就行了、下面直接上代码

    [java]  view plain copy public  class  EncryptionByMD5 {          public static String getMD5(byte[] source) {           String s = null;           char hexDigits[] = { '0''1''2''3''4''5''6''7''8''9',                   'a''b''c''d''e''f' };// 用来将字节转换成16进制表示的字符           try {               java.security.MessageDigest md = java.security.MessageDigest                       .getInstance("MD5");               md.update(source);               byte tmp[] = md.digest();// MD5 的计算结果是一个 128 位的长整数,               // 用字节表示就是 16 个字节               char str[] = new char[16 * 2];// 每个字节用 16 进制表示的话,使用两个字符, 所以表示成 16               // 进制需要 32 个字符               int k = 0;// 表示转换结果中对应的字符位置               for (int i = 0; i < 16; i++) {// 从第一个字节开始,对 MD5 的每一个字节// 转换成 16                   // 进制字符的转换                   byte byte0 = tmp[i];// 取第 i 个字节                   str[k++] = hexDigits[byte0 >>> 4 & 0xf];// 取字节中高 4 位的数字转换,// >>>                   // 为逻辑右移,将符号位一起右移                   str[k++] = hexDigits[byte0 & 0xf];// 取字节中低 4 位的数字转换                  }               s = new String(str);// 换后的结果转换为字符串              } catch (NoSuchAlgorithmException e) {               // TODO Auto-generated catch block               e.printStackTrace();           }           return s;       }              public static void main(String[] args){                  String test=EncryptionByMD5.getMD5("test".getBytes());           System.out.println(test);          }   }   输出结果为:098f6bcd4621d373cade4e832627b4f6
    转载请注明原文地址: https://ju.6miu.com/read-1311327.html
    最新回复(0)