一个实现MD5的简洁的java类

JavaMD5加密解密 MD5是一种常用的哈希函数算法,用于将任意长度的数据转换为固定长度的哈希值(通常为128位)。它是Ronald Rivest在1991年设计的,广泛应用于数字签名、数据完整性检查等领域。 阅读详情

由于消息摘要唯一性和不可逆性的特点,所以不失为一种简单的常用的加密手段,比如你可以用md5来加密你的应用中的用户口令。

  1. package test;
  2. import java.security.MessageDigest;
  3. /**
  4.  * <p>Title: </p>
  5.  * <p>Description: </p>
  6.  * <p>Copyright: Copyright (c) 2003</p>
  7.  * <p>Company: </p>
  8.  * @author unascribed
  9.  * @version 1.0
  10.  */
  11. public class StringUtil {
  12.   private final static String[] hexDigits = {
  13.       "0", "1", "2", "3", "4", "5", "6", "7",
  14.       "8", "9", "a", "b", "c", "d", "e", "f"};
  15.   /**
  16.    * 转换字节数组为16进制字串
  17.    * @param b 字节数组
  18.    * @return 16进制字串
  19.    */
  20.   public static String byteArrayToHexString(byte[] b) {
  21.     StringBuffer resultSb = new StringBuffer();
  22.     for (int i = 0; i < b.length; i++) {
  23.       resultSb.append(byteToHexString(b[i]));
  24.     }
  25.     return resultSb.toString();
  26.   }
  27.   private static String byteToHexString(byte b) {
  28.     int n = b;
  29.     if (n < 0)
  30.       n = 256 + n;
  31.     int d1 = n / 16;
  32.     int d2 = n % 16;
  33.     return hexDigits[d1] + hexDigits[d2];
  34.   }
  35.   public static String MD5Encode(String origin) {
  36.     String resultString = null;
  37.     try {
  38.       resultString=new String(origin);
  39.       MessageDigest md = MessageDigest.getInstance("MD5");
  40.       resultString=byteArrayToHexString(md.digest(resultString.getBytes()));
  41.     }
  42.     catch (Exception ex) {
  43.     }
  44.     return resultString;
  45.   }
  46.   public static void main(String[] args){
  47.     System.err.println(MD5Encode("a"));
  48.   }
  49. }



在RFC 1321中,给出了Test suite用来检验你的实现是否正确:

MD5 ("") = d41d8cd98f00b204e9800998ecf8427e
MD5 ("a") = 0cc175b9c0f1b6a831c399e269772661
MD5 ("abc") = 900150983cd24fb0d6963f7d28e17f72
MD5 ("message digest") = f96b697d7cb7938d525a2f31aaf161d0
MD5 ("abcdefghijklmnopqrstuvwxyz") = c3fcd3d76192e4007dfb496cca67e13b


参考资料:《java security handbook》 jamie jaworski

JAVA:实现MD5加解密算法(附完整源码) 阅读详情

相关推荐

Java实现MD5加密解密

Java实现MD5加密以及解密,附带测试类,具体见代码。 Java实现MD5加密以及解密,附带测试类,具体见代码。 Java实现MD5加密以及解密,附带测试类,具体见代码。 Java实现MD5加密以及解密,附带测试类,具体见代码。

【Java】使用MD5进行加密解密(代码实现)

我们的,对于用户来说,不应该知道我们的在正式环境,我们的数据需要通过网络传输,必须要保证明文:加密之前的内容,原始内容暗文:加密之后的内容公钥:可见的公共的钥匙私钥:不可见的私有的钥匙作用:一般对登录密码处理,用于做密码比对问题:只能加密,不能解密,特征:1. 可以加密,也可以解密2. 加密和解密的密钥是同一个作用:对数据库密码进行加密,秘钥为k,加密:s = AES(k,c)解密:c = AES(k,s)问题:1. 数据可能会被其他人2. 数据可能会。

m0_64210833的博客 4万+

Python离线断网情况下安装numpy、pandas和matplotlib等常用第三方包

联网情况下在命令终端CMD中输入“pip install numpy”即可自动安装,pandas和matplotlib同理一样方法进行自动安装。 工作的电脑不能上外网,所以不能通过直接输入pip命令来安装。 环境:电脑上已经安装了Python(没有安装的请参考其他教程)。 Python离线断网情况下安装numpy、pandas和matplotlib等常用第三方包的步骤如下: ...

dayou7738的博客 4942

使用java代码Md5加密

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 import java.math.BigInteger; import java.security.MessageDigest; import java.se

前端琅琊阁 1723

电容式麦克风:从原理到实际电路波形解析

本文深入解析电容式麦克风的工作原理,从核心的振膜与背板结构、电荷锁定机制到场效应管放大器的作用。通过实物拆解与等效电路分析,阐明声音振动如何转换为电压信号,并指导如何用示波器实测波形,直观展现声电转换过程,适合电子爱好者和音频技术学习者。

Black的专栏 1080

超聚变安装银河麒麟服务器系统ky10-server-x86

超聚变-通过BMC口进服务器管理界面如下图为BMC管理口:默认BMC口IP:https://192.168.2.100l浏览器打开网页,输入用户名和密码登陆后,如下图红框处,选择“启动虚拟控制台”——选择“HTML集成远程控制台”系统银河麒麟服务器系统ky10 server x86选择镜像文件X86架构我们一般选择下图2212版本选择启动方式:光驱重启出现安装图形化界面选装安装系统的磁盘系统安装盘选完后如下图,会置灰创建root密码开始安装系统首次进入,有协议界面。

zengliguang的专栏 5965

Java实现MD5加密以及解密

MD5的介绍         从本质上来说,MD5并不是一种加密算法,其全称是Message Digest Algorithm MD5(中文名:信息摘要算法第五版),为计算机安全领域广泛使用的一种散列函数,主要用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。MD5将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD5

小羊快跑的专栏 2万+

仿真学习系列(四十一):Sigrity仿真之PDN阻抗提取

电源分配网络(Power Distribution Network,简称PDN)是电子系统中至关重要的部分,主要用于将电源从电源输入端传输到各个组件。PDN的设计质量直接影响到系统的电源完整性和信号稳定性,尤其是在高速设计中,PDN的阻抗特性对电源噪声、地弹(ground bounce)和电源完整性(Power Integrity,简称PI)具有重要影响。

案例文章,高速信号 1134

md5 代码 java_一个实现MD5的简洁的java类

由于消息摘要唯一性和不可逆性的特点,所以不失为一种简单的常用的加密手段,比如你可以用md5来加密你的应用中的用户口令。packagetest;importjava.security.MessageDigest;/***Title:*Description:*Copyright:Copyright(c)2003*Company:*@authorunascribed*@v...

weixin_32601635的博客 162

国科大学习资料--数据挖掘(刘莹)--第三章习题及参考答案

国科大学习资料–数据挖掘(刘莹)–第三章习题及参考答案 国科大学习资料–数据挖掘(刘莹)–第三章习题及参考答案 国科大学习资料–数据挖掘(刘莹)–第三章习题及参考答案 第 3 章分类与回归 3.1简述决策树分类的主要步骤。 答:决策树生成的过程如下: (1)对数据源进行数据预处理, 得到训练集和测试集; (2)对训练集进行训练; (3)对初始决策树进行树剪枝; (4)由所得到的决策树提取分类规则; (5)使用测试数据集进行预测,评估决策树模型; 3.2给定决策树,选项有:(1)将决策树转换成规则,然后对结果

无名何许人的博客 3092

Python爬虫实战:高效爬取华尔街日报文章的技术与代码详解

在当今信息爆炸的时代,金融数据和分析对于投资者、研究人员和企业决策者来说至关重要。华尔街日报(WSJ)作为全球最具影响力的财经媒体之一,其文章内容具有极高的价值。本文将详细介绍如何使用Python最新技术构建一个高效、稳定的华尔街日报文章爬虫,涵盖从基础到高级的各种技术要点。本文详细介绍了如何使用Python最新技术构建一个高效、稳定的华尔街日报文章爬虫。我们从基础爬虫实现开始,逐步添加了高级功能如分布式处理、反反爬虫策略、数据清洗和存储等。异步处理:使用asyncio和httpx实现高性能网络请求。

2201_76125261的博客 385

md5课程设计java_一个实现MD5的简洁的java类(转帖)

http://www.java3z.com/cwbwebhome/article/article5a/5103.html?id=5比如你可以用md5来加密你的应用中的用户口令。packagetest;importjava.security.MessageDigest;/***Title:*Description:*Copyright:Copyright(c)2003*Comp...

weixin_39755625的博客 67

使用Google Earth Engine下载JRC全球水体数据

通过Google Earth Engine平台和提供的源代码,研究人员和水资源管理者可以方便地获取和利用这一重要的水资源监测数据集,从而开展相关的研究和决策支持工作。要使用Google Earth Engine下载JRC全球水体数据,首先需要在Google Earth Engine平台上进行注册和登录。JRC全球水体数据是由欧洲联合研究中心开发的高分辨率全球水体分类数据集,覆盖了整个地球的陆地和水域。下载完成后,你可以使用各种遥感数据处理软件来打开和分析这些数据,以满足不同的研究和应用需求。

LrlDebug的博客 1158
上一篇: 看看多种Look And Feel开发包所展示的效果如何
下一篇: 喜欢,是一种心情;爱,是一种感情
keithhe
博客等级 码龄24年 1粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值