MD5单向,加密算法-java
md5算法是一种常见的单项加密算法,例如mysql中的MD5()函数;
今天记录一下关于Java模块的md5加密算法应用 与编写;
md可以用到hibernate;
模块位于java.security.MessageDigest;
即是信息摘要处理包的意思,
sha,Md5,都有,
md5的加密方法就是对于一个字符串,
将它化为一个字节数组,对字节数组处理
将每个字节拆分为两个16进制的16进制符,拼接起来
具体可以将字节 向上 转成int型
由byte知道它小于int,不会丢失,
1byte=8bit
转化整数一定不会大于256,无符号
,再对(int)byte取余,除以16,得到两个下标,通过数组转化
参考代码:
package com.j.tool;import java.security.MessageDigest;/*** 获取MD5处理的摘要* * @author joker**/public class MD5Util {private static final String hexDigits[] = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d","e", "f" };/*** md5摘要,* * @param string 要加密文本* @return*/public static String getMD5(String string) {String result = "";try {// 获取MD5算法MessageDigest messageDigest = MessageDigest.getInstance("MD5");// 转化密文字节流messageDigest.update(string.getBytes("utf-8"));// 计算摘要byte[] bs = messageDigest.digest();result = MD5Util.byteArrayToHexString(bs);} catch (Exception e) {// TODO 自动生成的 catch 块e.printStackTrace();}return result.toString().toUpperCase();}/*** 加密; 将字节数组里每个字节转成2个16进制位的字符串后拼接起来*/private 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();}/*** 加密 将1个字节(1 byte = 8 bit)转为 2个十六进制位 1个16进制位 = 4个二进制位 (即4 bit)* 转换思路:最简单的办法就是先将byte转为10进制的int类型,然后将十进制数转十六进制*/private static String byteToHexString(byte b) {// byte类型赋值给int变量时,java会自动将byte类型转int类型,从低位类型到高位类型自动转换int n = b;// 将十进制数转十六进制//符号if (n < 0)n += 256;int d1 = n / 16;int d2 = n % 16;// d1和d2通过访问数组变量的方式转成16进制字符串;比如 d1 为12 ,那么就转为"c";// 因为int类型不会有a,b,c,d,e,f等表示16进制的字符return hexDigits[d1] + hexDigits[d2];}
}
MD5单向,加密算法-java相关推荐
- 常用加密算法的Java实现(一) ——单向加密算法MD5和SHA
1.Java的安全体系架构 1.1 Java的安全体系架构介绍 Java中为安全框架提供类和接口.JDK 安全 API 是 Java 编程语言的核心 API,位于 java.sec ...
- 【国产加密算法-java实现SM3】
国产加密算法-java实现SM3 一.国产加密算法介绍 国家商用密码管理办公室制定了一系列密码标准,包括SM1(SCB2).SM2.SM3.SM4.SM7.SM9.祖冲之密码算法(ZUC)那等等. 其 ...
- MD5工具类(java实现版)
MD5工具类(java实现版) 介绍 MD5(Message Digest Algorithm)加密算法是不对称的加密算法,因为其实不可逆的,实际上其不能算作加密算法, 因为其不可解密.其实现原理是基 ...
- 【建议收藏】MD5 算法的Java Bean
MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输 ...
- AES加密算法 Java与Python跨平台实现
AES加密算法 Java与Python跨平台实现 什么是AES Java的实现 Python的实现 结果 什么是AES Note: 网上有很多实现代码但是鱼龙混杂,笔者摸索了半天,实现了AES加密文本 ...
- MD5单向散列算法详解
历史: MD5 叫信息-摘要算法,是一种密码的算法,它可以对任何文件产生一个唯一的MD5验证码,每个文件的MD5码就如同每个人的指纹一样,都是不同的,这样,一旦这个文件在传输过程中,其内容被损坏或者被 ...
- RSA、MD5等加密算法的区别和应用
RSA算法: 是典型的非对称加密算法,主要具有数字签名和验签的功能. MD5算法: 是消息摘要算法,只能用来生成消息摘要无法进行数字签名. IDEA算法和RC4算法: 对称加密算法,只能用来进行数据加 ...
- MD5算法了解(JAVA实现)
MD5算法:尽管已经被破解,但任然广泛应用于各个领域中 如文件校验:当我们下载文件时为了保证文件的安全性,我们能够在其站点上找到相应的md5值进行校验,假设md5值不一致,也就是说文件被人动过(一般都 ...
- rsa加密算法java实例,java实现的RSA加密算法详解
本文实例讲述了java实现的RSA加密算法.分享给大家供大家参考,具体如下: 一.什么是非对称加密 1.加密的密钥与加密的密钥不相同,这样的加密算法称之为非对称加密 2.密钥分为:公钥,私钥 公钥:可 ...
最新文章
- 极验行为验证的使用方法
- mysql 监控工具
- python字符串、列表和文件对象总结
- R学习笔记:运行时间记录
- python编程*三角形图形创意图片_python循环输出三角形图案的例子
- 如何避免调参来自动选择神经网络结构?基于遗传算法的NAS最新进展
- LeetCode 288. 单词的唯一缩写(哈希)
- Jsoup 数据修改
- c/c++教程 - 1.2 变量、常量
- Unity视频组件Video Player的介绍
- win7启动黑屏安全模式下卸载驱动图解
- 树莓派介绍树莓派3代B+型开发板
- DSP 仿真调试步骤
- 给虚拟机下载安装jdk,hadoop等(非常详细的步骤)
- 有利于排名的网页标题和描述创作
- android大图、高清图片处理
- Qt入门01 创建第一个Qt程序
- WIN10管理员权限设置、更改用户名被“拒绝访问”
- 嫁人就要嫁程序员,钱多话少死得早!
- 大型分布式数据库集群的研究