MD5 加密算法的使用
最近在看视频时,看到 MD5 的加密算法,感觉其在某些重要信息中,还是很好的解决了一些安全问题的。于是,就在自己理解的情况下,实现了 MD5 算法。
具体的流程大致是:
(1)将指定的数据首先通过 MessageDigest 类转为 MD5 的表现形式
(2)将 MD5 表现形式的数据,将其每个字节,转为 16 进制的表示方法
具体的实现方式如下:
/**
* 0.0.0.1
*/
package com.test.common; import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException; import org.apache.log4j.Logger; /**
* MD5加密测试
* @author 高青
* 2014-4-21
*/
public class MD5Security { /** 日志对象 */
private static Logger log = Logger.getLogger(MD5Security.class); /** 十六进制数组 */
private static char[] hexArr = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; /**
* 构造方法
*/
public MD5Security() {
// TODO Auto-generated constructor stub
} /**
* 主线程方法
* @author 高青
* 2014-4-21
* @param args 字符串参数集
* @return 空
*/
public static void main(String[] args) {
//加密的信息
String securityInfo = "a"; try {
//通过 JAVA 的 Security 包,得到 MD5 表示方式 的字节数组
MessageDigest instance = MessageDigest.getInstance("MD5"); //此字节数据是 128 位的长整数,即是 16 个字节表示的数据
byte[] digest = instance.digest(securityInfo.getBytes()); //转换为 16 进制后的字节数组
char[] hexByte = new char[16*2];
//记录 当前计算后的字节在 十六进制字节数组中的位置
int k = 0; //循环遍历 MD5 中的每个字节,并将每个字节改成对应的 16 进制进行表示
for (int i = 0; i < 16; i++) { //计算当前字节的高四位所对应的十六进制数
hexByte[k++] = hexArr[digest[i] >>> 4 & 0xf]; //计算当前字节的低四位所对应的十六进制数
hexByte[k++] = hexArr[digest[i] & 0xf];
}
//将转化后的字符数组转为 String 类型
String hexString = new String(hexByte);
System.out.println(hexString); } catch (NoSuchAlgorithmException e) {
log.info("实例化 MessageDigest 对象异常!");
e.printStackTrace();
}
}
}
加密后的结果为:0cc175b9c0f1b6a831c399e269772661
MD5 加密算法的使用的更多相关文章
- 一起谈谈MD5加密算法
MD5是一个安全的散列算法,输入两个不同的明文不会得到相同的输出值,根据输出值,不能得到原始的明文,即其过程不可逆:所以要解密MD5没有现成的算法,只能用穷举法,把可能出现的明文,用MD5算法散列之后 ...
- MD5加密算法
package com.bao.tools.encryption; import java.security.MessageDigest;import java.security.NoSuchAlgo ...
- md5加密算法c语言版
from: http://blog.sina.com.cn/s/blog_693de6100101kcu6.html 注:以下是md5加密算法c语言版(16/32位) ---------------- ...
- MD5加密算法测试
在用户注册这一块,密码加密保证客户信息安全是最重要的,在网上查询了一些资料,发现加密算法比较流行的有MD5,DES和SHA. 虽然SHA与MD5通过碰撞法被破解了,但是MD5和SHA仍被公认是安全的加 ...
- 标准MD5加密算法
标准MD5加密算法: public class Md5 { public static String getMd5(String s) { char hexDigits[] = { '0', '1', ...
- MD5加密算法(java及js)
为了防止用户登陆过程中信息被拦截导致信息泄露,我们应该在客户端就对用户密码进行加密.浏览器提交给服务器的是加密后的信息,即使被恶意拦截,被拦截信息也已做了加密处理,现在比较安全的一种加密算法是MD5加 ...
- MD5加密算法的Java版本
网上搜索Java实现MD5的资料很多,错误的也很多. 之前编写的一个阿里云直播鉴权原理算法需要用到MD5算法,网上找了几个,都是不行,浪费了时间,现在贴一个,做备用. import java.secu ...
- JAVA实现MD5加密算法(使用MessageDigest)
http://blog.csdn.net/ymc0329/article/details/6738711 *********************************************** ...
- c++Builder XE6 MD5 加密算法 BASE64 URL 编码
xe6,xe7 BASE64XE6 MD5 加密算法Delphifunction MD5(const texto: string): string; var idmd5: TIdHashMessage ...
- MD5加密算法原理及其应用
MD5是一个安全的散列算法,输入两个不同的明文不会得到相同的输出值,根据输出值,不能得到原始的明文,即其过程不可逆:所以要解密MD5没有现成的算法,只能用穷举法,把可能出现的明文,用MD5算法散列之后 ...
随机推荐
- sql print
这个因为你使用了varchar+int ,但是print只支持一种类型的输出,你要么通过转换函数将@no转换成字符类型,要么去掉@name.print '李勇' + convert(varchar, ...
- Python—numpy.flatnonzero()
numpy.flatnonzero(): 该函数输入一个矩阵,返回扁平化后矩阵中非零元素的位置(index) 这是官方文档给出的用法,非常正规,输入一个矩阵,返回了其中非零元素的位置. 1 >& ...
- APP测试的那些坑
在记录app测试走过的那些坑之前,先总结下app测试的工作主要有哪些: 1.功能测试,无论是什么软件产品,必不可少的就是功能测试.我们需要测试这款app产品的功能是否完善,是否符合客户需求,是否符 ...
- 计算客网络赛 Coin 二项式定理+逆元
https://nanti.jisuanke.com/t/17115 Bob has a not even coin, every time he tosses the coin, the proba ...
- 条款42:了解typename的双重含义
typename在很多种情况下与class是完全相同的,例如下面的使用: templame<typename T> ...... template<class T> ..... ...
- uva1315 Crazy tea party(找规律)
题意就是说把顺时针排的1到n换成逆时针排的需要的最少交换步数. 如果是线形的一串数,需要的交换次数就是个冒泡排序的交换次数:n*(n-1)/2,或者用a[i]=(i-1)+a[i-1]推出来. 对于环 ...
- 字符集、字符编码、XML中的中文编码
字符集.字符编码.XML中的中文编码 作为程序员的你是不是对于ASCII .UNICODE.GB2321.UTF-7.UTF-8等等不时出现在你面前的这些有着奇怪意义的词感到很讨厌呢,是不是总觉得好象 ...
- RabbitMQ集群 Docker一键部署
以下内容来自网络转载 步骤1. 安装docker 以centos7为例,https://docs.docker.com/engine/installation/linux/centos/ 步骤2. 创 ...
- webpack 故障处理
Webpack 的配置比较复杂,很容出现错误,下面是一些通常的故障处理手段. 一般情况下,webpack 如果出问题,会打印一些简单的错误信息,比如模块没有找到.我们还可以通过参数 --display ...
- 软件架构设计 ADMEMS方法体系
ADMEMS是Architecture Design Method has been Extended to Method System的简称,是由CSAI顾问团架构设计专家组于2009年11月在第六 ...