java md5加密

在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);  
                       
        

版权声明

本站文章、图片、视频等(除转载外),均采用知识共享署名 4.0 国际许可协议(CC BY-NC-SA 4.0),转载请注明出处、非商业性使用、并且以相同协议共享。

© 空空博客,本文链接:https://www.yeetrack.com/?p=28