在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
近期评论