,,Java中MessageDigest来实现数据加密的方法

,,Java中MessageDigest来实现数据加密的方法

这篇文章主要介绍了Java 语言(一种计算机语言,尤用于创建网站)语言(一种计算机语言,尤用于创建网站)中消息摘要来实现数据加密的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

MessageDigest

消息摘要类为应用程序提供信息摘要算法的功能,如讯息摘要5或恒星时角算法。信息摘要是安全的单向哈希函数,它接收任意大小的数据,输出固定长度的哈希值。

消息摘要对象开始被初始化。该对象通过使用更新方法处理数据。任何时候都可以调用重置方法重置摘要。一旦所有需要更新的数据都已经被更新了,应该调用摘要方法之一完成哈希计算。

对于给定数量的更新数据,摘要方法只能被调用一次2008年文摘。被调用后,消息摘要对象被重新设置成其初始状态。

举个简单的讯息摘要5加密的例子:

包com.company

导入Java。安全。消息摘要;

导入Java。安全。nosuchalgorithm异常;

公共类MessageDigestTest {

公共静态void main(String[] args)引发NoSuchAlgorithmException {

字符串源=' 123123

string MD5 str=get MD5(源码);

系统。出去。println(MD 5 str);

}

/**

* 通过讯息摘要5进行加密

* @param源要加密的数据

* @返回

* @ throws算法异常

*/

私有静态字符串getMd5(字符串源)引发NoSuchAlgorithmException {

//1.获取消息摘要对象

消息摘要=消息摘要。getinstance(' MD5 ');

//2.执行加密操作

byte[]bytes=源。getbytes();

//在讯息摘要5算法这,得到的目标字节数组的特点:长度固定为16

byte[]目标字节=摘要。文摘(字节);

//3.声明字符数组

char [] characters=new char[]{'0 ',' 1 ',' 2 ',' 3 ',' 4 ',' 5 ',' 6 ',' 7 ',' 8 ',' 9 ',' A ',' B ',' C ',' D ',' E ',' F ' };

//4.遍历目标字节

StringBuilder builder=new StringBuilder();

对于(字节乙:目标字节){

//5.取出b的高四位的值

//先把高四位通过右移操作拽到低四位

int high=(B4)15;

//6.取出b的低四位的值

int low=b 15

//7.以高的为下标从特性中取出对应的十六进制字符

char high char=characters[高];

//8.以低的为下标从特性中取出对应的十六进制字符

char low char=characters[low];

builder.append(highChar).追加(低位字符);

}

返回建筑商。tostring();

}

}

测试结果:

4297 f44b 13955235245 b 2497399 d7a 93

封装成工具类:

包com.company

导入Java。安全。消息摘要;

导入Java。安全。nosuchalgorithm异常;

公共类MD5工具{

私有静态threadlocalm 5工具MD 5工具thread local=new thread local();

私有MD5Tool() {

}

/**

* 获取一个讯息摘要5工具实例

*/

公共静态MD5Tool getInstance() {

if(MD 5 toolthreadlocal。get()==null){

MD 5工具螺纹局部。set(新的MD 5工具());

}

返回MD 5工具线程本地。get();

}

/**

* 通过讯息摘要5进行加密

*

* @param源要加密的数据

* @返回

* @ throws算法异常

*/

公共字符串getMd5(字符串源)引发NoSuchAlgorithmException {

//1.获取消息摘要对象

消息摘要=消息摘要。getinstance(' MD5 ');

//2.执行加密操作

byte[]bytes=源。getbytes();

//在讯息摘要5算法这,得到的目标字节数组的特点:长度固定为16

byte[]目标字节=摘要。文摘(字节);

//3.声明字符数组

char[] characters=new char[]{'0 ',' 1 ',' 2 ',' 3 ',' 4 ',' 5 ',' 6 ',' 7 ',' 8 ',' 9 ',' A ',' B ',' C ',' D ',' E ',' F ' };

//4.遍历目标字节

StringBuilder builder=new StringBuilder();

对于(字节乙:目标字节){

//5.取出b的高四位的值

//先把高四位通过右移操作拽到低四位

int high=(B4)15;

//6.取出b的低四位的值

int low=b 15

//7.从下标高的字符中取出对应的十六进制字符。

char high char=characters[高];

//8.从下标低的字符中取出相应的十六进制字符。

char low char=characters[low];

builder.append(highChar)。append(low char);

}

返回builder . tostring();

}

}

关于在Java中用MessageDigest实现数据加密的方法,本文到此为止。有关MessageDigest数据加密的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: