这是我多年前的手记,分享到此。
Java加密体系
大家都知道,JAVA是安全的,比如自动内存管理;自动数组溢出检查;字节代码的验证机制;独特的安全类加载。。。。。JAVA都是需要编译成.class格式后再执行,其他人看不到项部的源代码,在代码的安全性就很高。JAVA平台已经实现好了加密算法只要调用类就可以了,在JAVA加密体系中JCA和JCE是JAVA中的两个重要的框架:
JCA——Java Cryptography Architecture
数字签名
信息摘要
JCE——Java Cryptography Extension
MD5(消息摘要算法)
SHA(安全散列算法)
DES(数据加密算法)
理论知识我就再啰嗦了,有兴趣多了解的可以去查询相关方面的知识进行学习;接下来我来执行使用JAVA进行MD5加密,步骤简单
初始化MessageDigest信息摘要对象
传入需要计算的字条串更新摘要对象
计算信息摘要
将byte[]转换为长度为32位的16进制字符串
源代码如下:
package com.qzh.test; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Scanner; public class MD5Test { public void TestMD5(String input) throws NoSuchAlgorithmException, UnsupportedEncodingException{ //1.初始化MessageDigest信息摘要对象 MessageDigest md = MessageDigest.getInstance("md5"); //2.传入需要计算的字条串更新摘要对象 md.update(input.getBytes("UTF-8")); //3.计算信息摘要 byte[] hashCode = md.digest(); //4.将byte[]转换为长度为32位的16进制字符串 StringBuffer sb = new StringBuffer(); for(byte b:hashCode){ sb.append(Character.forDigit((b>>4) & 0xf, 16)); sb.append(Character.forDigit(b & 0xf, 16)); } System.out.println("加密后:" + sb.toString()); } public static void main(String[] args) throws NoSuchAlgorithmException, UnsupportedEncodingException { Scanner scanner = new Scanner(System.in); System.out.println("请输入你要加密的数据......"); String input = scanner.nextLine(); MD5Test md5 = new MD5Test(); md5.TestMD5(input); } }
执行后如下图:
可以看出,“邱子豪”三个字,经过JAVA中MD5算法加密后是:
3670cfbab80f4888d59a04d2a3daf3f9 ;
本文暂时没有评论,来添加一个吧(●'◡'●)