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相关推荐

  1. 常用加密算法的Java实现(一) ——单向加密算法MD5和SHA

    1.Java的安全体系架构 1.1           Java的安全体系架构介绍 Java中为安全框架提供类和接口.JDK 安全 API 是 Java 编程语言的核心 API,位于 java.sec ...

  2. 【国产加密算法-java实现SM3】

    国产加密算法-java实现SM3 一.国产加密算法介绍 国家商用密码管理办公室制定了一系列密码标准,包括SM1(SCB2).SM2.SM3.SM4.SM7.SM9.祖冲之密码算法(ZUC)那等等. 其 ...

  3. MD5工具类(java实现版)

    MD5工具类(java实现版) 介绍 MD5(Message Digest Algorithm)加密算法是不对称的加密算法,因为其实不可逆的,实际上其不能算作加密算法, 因为其不可解密.其实现原理是基 ...

  4. 【建议收藏】MD5 算法的Java Bean

    MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输 ...

  5. AES加密算法 Java与Python跨平台实现

    AES加密算法 Java与Python跨平台实现 什么是AES Java的实现 Python的实现 结果 什么是AES Note: 网上有很多实现代码但是鱼龙混杂,笔者摸索了半天,实现了AES加密文本 ...

  6. MD5单向散列算法详解

    历史: MD5 叫信息-摘要算法,是一种密码的算法,它可以对任何文件产生一个唯一的MD5验证码,每个文件的MD5码就如同每个人的指纹一样,都是不同的,这样,一旦这个文件在传输过程中,其内容被损坏或者被 ...

  7. RSA、MD5等加密算法的区别和应用

    RSA算法: 是典型的非对称加密算法,主要具有数字签名和验签的功能. MD5算法: 是消息摘要算法,只能用来生成消息摘要无法进行数字签名. IDEA算法和RC4算法: 对称加密算法,只能用来进行数据加 ...

  8. MD5算法了解(JAVA实现)

    MD5算法:尽管已经被破解,但任然广泛应用于各个领域中 如文件校验:当我们下载文件时为了保证文件的安全性,我们能够在其站点上找到相应的md5值进行校验,假设md5值不一致,也就是说文件被人动过(一般都 ...

  9. rsa加密算法java实例,java实现的RSA加密算法详解

    本文实例讲述了java实现的RSA加密算法.分享给大家供大家参考,具体如下: 一.什么是非对称加密 1.加密的密钥与加密的密钥不相同,这样的加密算法称之为非对称加密 2.密钥分为:公钥,私钥 公钥:可 ...

最新文章

  1. 极验行为验证的使用方法
  2. mysql 监控工具
  3. python字符串、列表和文件对象总结
  4. R学习笔记:运行时间记录
  5. python编程*三角形图形创意图片_python循环输出三角形图案的例子
  6. 如何避免调参来自动选择神经网络结构?基于遗传算法的NAS最新进展
  7. LeetCode 288. 单词的唯一缩写(哈希)
  8. Jsoup 数据修改
  9. c/c++教程 - 1.2 变量、常量
  10. Unity视频组件Video Player的介绍
  11. win7启动黑屏安全模式下卸载驱动图解
  12. 树莓派介绍树莓派3代B+型开发板
  13. DSP 仿真调试步骤
  14. 给虚拟机下载安装jdk,hadoop等(非常详细的步骤)
  15. 有利于排名的网页标题和描述创作
  16. android大图、高清图片处理
  17. Qt入门01 创建第一个Qt程序
  18. WIN10管理员权限设置、更改用户名被“拒绝访问”
  19. 嫁人就要嫁程序员,钱多话少死得早!
  20. 大型分布式数据库集群的研究

热门文章

  1. 阿里云服务器CentOS6.9安装jenkins
  2. NYOJ--517--最小公倍数(大数打表)
  3. android studio连接真机问题
  4. delphi VCL研究之消息分发机制(转)
  5. 两个操作字符串的方法:读取指定位置的字符和找出某个字符串的位置
  6. EWORD 0513
  7. OpenGL ES之着色语言GLSL的使用说明及API
  8. LeetCode Algorithm 1534. 统计好三元组
  9. LeetCode Algorithm 剑指 Offer 25. 合并两个排序的链表
  10. 中国大学MOOC 人工智能导论第三章测试