消息摘要 MD5 和 SHA 的使用
来源:互联网 发布:js trimend 编辑:程序博客网 时间:2024/04/29 11:22
使用方法 :
首先用生成一个 MessageDigest 类 , 确定计算方法
java.security.MessageDigest alga=java.security.MessageDigest.getInstance(“SHA-1”);
添加要进行计算摘要的信息
alga.update(myinfo.getBytes());
计算出摘要
byte[] digesta=alga.digest();
发送给其他人你的信息和摘要
其他人用相同的方法初始化 , 添加信息 , 最后进行比较摘要是否相同
algb.isEqual(digesta,algb.digest())
相关 AIP
java.security.MessageDigest 类
static getInstance(String algorithm)
返回一个 MessageDigest 对象 , 它实现指定的算法
参数 : 算法名 , 如 SHA-1 或 MD5
void update (byte input)
void update (byte[] input)
void update(byte[] input, int offset, int len)
添加要进行计算摘要的信息
byte[] digest()
完成计算 , 返回计算得到的摘要 ( 对于 MD5 是 16 位 ,SHA 是 20 位 )
void reset()
复位
static boolean isEqual(byte[] digesta, byte[] digestb)
比效两个摘要是否相同
代码:
import java.security.*; public class myDigest { public static void main(String[] args) { myDigest my=new myDigest(); my.testDigest(); } public void testDigest() { try { String myinfo="我的测试信息"; //java.security.MessageDigest alg=java.security.MessageDigest.getInstance("MD5"); java.security.MessageDigest alga=java.security.MessageDigest.getInstance("SHA-1"); alga.update(myinfo.getBytes()); byte[] digesta=alga.digest(); System.out.println("本信息摘要是 :"+byte2hex(digesta)); // 通过某中方式传给其他人你的信息 (myinfo) 和摘要 (digesta) 对方可以判断是否更改或传输正常 java.security.MessageDigest algb=java.security.MessageDigest.getInstance("SHA-1"); algb.update(myinfo.getBytes()); if (algb.isEqual(digesta,algb.digest())) { System.out.println("信息检查正常"); } else { System.out.println("摘要不相同"); } } catch (java.security.NoSuchAlgorithmException ex) { System.out.println("非法摘要算法"); } } public String byte2hex(byte[] b) // 二行制转字符串 { String hs=""; String stmp=""; for (int n=0;n<b.length;n++) { stmp=(java.lang.Integer.toHexString(b[n] & 0XFF)); if (stmp.length()==1) hs=hs+"0"+stmp; else hs=hs+stmp; if (n<b.length-1) hs=hs+":"; } return hs.toUpperCase(); } }
阅读全文
1 0
- 消息摘要 MD5 和 SHA 的使用
- 消息摘要的编程使用(MD5、SHA、HMAC)
- Java中消息摘要的编程(MD5/SHA/HMAC)的使用
- Android--消息摘要MD5,SHA加密
- 数据摘要算法的测试效率(SHA、MD5和CRC32)
- 数据摘要算法的测试效率(SHA、MD5和CRC32)
- 数据摘要算法的测试效率(SHA、MD5和CRC32)
- 数据摘要算法的测试效率(SHA、MD5和CRC32)
- 数据摘要算法的测试效率(SHA、MD5和CRC32)
- 数据摘要算法的测试效率(SHA、MD5和CRC32)
- 数据摘要算法的测试效率(SHA、MD5和CRC32)
- 数据摘要算法的测试效率(SHA、MD5和CRC32)
- md5加密和sha加密的使用
- MD5消息摘要算法和SHA-1安全散列算法
- md5-sha 摘要加密算法
- Base64算法,消息摘要算法-Base64,MD5,SHA,MAC加密
- java中消息摘要MD5与SHA-1
- 消息摘要MD/SHA/HMAC的使用方法
- nginx+LVS+keepalived实现企业高可用
- golang p2p udp server
- 有效减小apk大小的方式
- DC/OS微服务平台搭建
- react native 封装组件以复用
- 消息摘要 MD5 和 SHA 的使用
- js,jquery获取服务器时间
- idea 上传项目到GitHub遇到的坑
- 设计模式原则(5):迪米特法则
- CSS基础-清除浮动
- unix环境C编程之日期时间转换
- C语言问题,if条件里面按位取反
- java-UML
- 第六场选拔赛 Crixalis's Equipment 贪心