java md5加密

无人久伴 提交于 2021-02-13 09:40:19

在java中可以使用java.security.MessageDigest类,进行md5加密

常用场景:
一般网站存储用户密码时,不会存储明文密码,最少也要经过一次md5加密。



本案只介绍使用java.security.MessageDigest,对数据进行加密操作。该方法是单向的加密算法

详细代码如下所表示:

/**对语句进行单向加密 
        * <功能详细描述> 
        * @param message   需要加密的信息 
        * @return 
        * @throws NoSuchAlgorithmException 
        * @throws IOException [参数说明] 
        *  
        * @return byte[] [返回类型说明] 
        * @exception throws [违例类型] [违例说明] 
        * @see [类、类#方法、类#成员] 
        */
       public byte[] encrypt(String message)  
           throws NoSuchAlgorithmException, IOException  
       {  
                                
           // 获取MessageDigest实例  
           MessageDigest encrypt = MessageDigest.getInstance("md5");  
                                
           // 添加需要加密的信息  
           encrypt.update(message.getBytes());  
                                
           // 对信息信息加密  
           byte[] encryptMD5 = encrypt.digest();  
                                
           //获得加密算法  
           System.out.println(encrypt.getAlgorithm());  
                                
           //得到加密算法的长度  
           System.out.println(encrypt.getDigestLength());  
                                
           return encryptMD5;
/**
     * 将16位byte[] 转换为32位String
     *
     * @param buffer
     * @return
     */
    private String toHex(byte buffer[]) {
        StringBuffer sb = new StringBuffer(buffer.length * 2);
        for (int i = 0; i < buffer.length; i++) {
            sb.append(Character.forDigit((buffer[i] & 240) >> 4, 16));
            sb.append(Character.forDigit(buffer[i] & 15, 16));
        }
             
        return sb.toString();
    }
public static void main(String[] args)  
           throws NoSuchAlgorithmException, IOException  
       {  
           SecurityTest t = new SecurityTest();  
           //得到加密数组  
           byte[] data = t.encrypt("我的测试信息!");  
           //转为32位16进制字符串  
           String baseResult =       SecurityTest.toHex(data);              
           System.out.println("baseResult"+baseResult);

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!