java中字符串 MD5密码的加密与验证
java中字符串 MD5密码的加密与验证
MD5即Message-Digest Algorithm 5(信息-摘要 算法 5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译 摘要算法、哈希算法),主流编程语言普遍已有MD5实现。
将数据(如汉字)运算为另一固定长度值是杂凑算法的基础原理,MD5的前身有MD2、MD3和MD4。
本实例介绍用MD5进行加密和验证,将输入字符串通过MD5加密成另一个字符串,而且根据新的字符串无法获得原字符串,但可以在不知道原始密码的情况下进行密码验证。
关键技术:
*通过java.security.MessageDigest的静态方法getInstance创建具有指定算法名称的信息摘要,参数为算法名,传入“MD5”则表示将使用MD5算法。
*MessageDigest的digest实例方法使用指定的字节数组对摘要进行最后更新,然后完成摘要计算,返回存放哈希值结果的季节数组,这个数组就是MD5加密产品。
*将加密后的字节数组转换成十六进制的字符窜,形成最终的密码。
*当输入字符串经过MD5加密后,得到的字符串与密码一样,则认为密码验证通过。
实例演示:
private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5",
"6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };
/**
* 转换字节数组为16进制字串
*
* @param b
* 字节数组
* @return 16进制字串
*/
public static String byteArrayToHexString(byte[] b) {
StringBuffer resultSb = new StringBuffer();
for (int i = 0; i < b.length; i++) {
resultSb.append(byteToHexString(b[i]));
}
return resultSb.toString();
}
private static String byteToHexString(byte b) {
int n = b;
if (n < 0)
n = 256 + n;
int d1 = n / 16;
int d2 = n % 16;
return hexDigits[d1] + hexDigits[d2];
}
public static String MD5Encode(String origin) {
String resultString = null;
try {
resultString = new String(origin);
MessageDigest md = MessageDigest.getInstance("MD5");
resultString = byteArrayToHexString(md.digest(resultString
.getBytes()));
} catch (Exception ex) {
}
return resultString;
}
public static boolean isValidate(String input,String output){
boolean status = false;
if(MD5Util.MD5Encode(input).equals(output)){
status = true;
}else{
status = false;
}
return status;
}
public static void main(String[] args) {
System.out.println(MD5Encode("123"));
boolean b = MD5Util.isValidate("123", "21232f297a57a5a743894a0e4a801fc3");
System.out.println(b);
}
}
java中字符串 MD5密码的加密与验证相关推荐
- java md5加密长度_java中使用MD5加密算法进行加密
java中使用MD5加密算法进行加密以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在各种应用系统的开发中 经常需要存储 ...
- java-对密码进行加密和验证的类
java 密码MD5加密 java加密bytestring算法null package com.sunnylocus.util; import java.security.MessageDi ...
- java对密码进行加密的方法_如何在JAVA中使用MD5加密对密码进行加密
如何在JAVA中使用MD5加密对密码进行加密 发布时间:2020-11-25 17:12:40 来源:亿速云 阅读:118 作者:Leah 本篇文章为大家展示了如何在JAVA中使用MD5加密对密码进行 ...
- java中的md5加密_java中的MD5加密
java中的MD5加密 2016-01-22 09:07:00 admin 原创 1144 摘要:java中的MD5加密 /** * * md5加密 * @author LiuJiawan * @da ...
- java中md5加密和解密_如何在java中实现md5加密和解密
如何在java中实现md5加密和解密 关注:273 答案:1 mip版 解决时间 2021-01-19 20:37 提问者精神疯裂 2021-01-19 05:36 如何在java中实现md5加密 ...
- java,url长链接生成短链接,短链接生成器,自定义字符串,对字符串md5混合KEY加密,根据短链接获得key值,不重复的随机数,不重复的随机字符串...
java,url长链接生成短链接,短链接生成器,自定义字符串,对字符串md5混合KEY加密,根据短链接获得key值,不重复的随机数,不重复的随机字符串 1 package com.zdz.test; ...
- java中使用MD5进行计算摘要
java中使用MD5进行加密 在各种应用系统的开发中,经常需要存储用户信息,很多地方都要存储用户密码,而将用户密码直接存储在服务器上显然是不安全的,本文简要介绍工作中常用的 MD5加密算法,希望能抛砖 ...
- 【转】Java中字符串中子串的查找共有四种方法(indexof())
原文网址:http://wfly2004.blog.163.com/blog/static/1176427201032692927349/ Java中字符串中子串的查找共有四种方法,如下: 1.int ...
- java中字符串的精确匹配_Java最佳实践–字符串性能和精确字符串匹配
java中字符串的精确匹配 在使用Java编程语言时,我们将继续讨论与建议的实践有关的系列文章,我们将讨论String性能调优. 我们将专注于如何有效地处理字符串创建, 字符串更改和字符串匹配操作. ...
最新文章
- 百度要回归 A 股?
- MyBatis框架使用(一)
- GPUImageMovieWriter实现暂停录制,重新录制
- Array Elimination 运算,gcd,思维
- PHP中三元运算符的用法_php中三元运算符用法_PHP教程
- 泛型 java 总结_JAVA泛型总结
- 用collectionview实现瀑布流-转(后面附demo,供参考)
- Linux进程管理及作业控制(转)
- 常微分方程:初值问题与边值问题
- 关于s19赛季服务器维修,王者荣耀S19赛季版本更新问题及解决办法一览
- 跨界合作成潮流 智能家居竞争升级
- 测试部门工作周报模板
- 【软件使用】Macbook M1 QuickTime录屏讲解(只录电脑或者同时录电脑和麦克风人声)
- android ocr 身份证识别
- 收集瓶盖赢大奖+石头剪刀布+幸运数字+数苹果
- tab效果——支持tab标题的宽度自适应
- 有限状态机FSM(finite state machine) 二
- 软件国际化—语言代码表
- m短波宽带通信系统的信道建模matlab仿真
- ERP开发-生产模块-数据表关系图
热门文章
- Pokémon Army (easy version)
- js获取视频长度的3种方法
- AI值得信任吗?“可信AI”或能给出答案
- IC验证培训——SystemVerilog通用程序库(上)
- python中if缩进规则_Python缩进与if语句 空格的魅力
- 单片机中断系统应用实例(两组实验+Proteus仿真+C源程序)
- [Leetcode] 741. Cherry Pickup 解题报告
- Daniel Sabbah:软件工程的转折点
- 关于MOS管的详细介绍
- mybatis-sqlserver批量新增返回id