首页 > 作文

md5工具使用方法(安卓md5校验工具apk)

更新时间:2023-04-05 06:08:34 阅读: 评论:0

使用java的messagedigest实现md5加密算法

md5加密算法的实现原理messagedigest类updateretdigestiqualgetinstance字符串的md5加密算法文本的md5加密工具类

md5加密算法的实现原理

java中md5加密算法的实现:
public class md5 {// 全局数组private final static string[] strdigit = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"};public class md5 {}// 返回形式为数字和字符串private static string bytetoarraystring(byte bbyte) {int iret = bbyte;if (iret < 0) {iret += 256;}int id1 = iret / 16;int id2 = iret % 16;return strdigits[id1] + strdigits[id2];}// 返回形式只为数字private static string bytetonum(byte bbyte) {int iret = bbyte;if (iret < 0) {iret += 256;}return string.valueof(iret);}// 将字节数组转换成为16进制的字符串private static string bytetostring(byte[] bbyte) {stringbuffer stringbuffer = new stringbuffer();for (int i; i < bbyte.length; i++) {stringbuffer.append(bytetoarraystring(bbyte[i]));}return stringbuffer.tostring();}// 获取md5值public static string getmd5code(string strobj) {string resultstring = null;try {resultstring = new string();messagedigest md5 = messagedigest.getinstance("md5");// md5.digest() - 返回值为存放hash值结果的byte数组resultstring = bytetostring(md5.digest(strobj.getbytes()));} catch (nosuchalgorithmexc信赖的近义词eption e) {e.printstacktrace();}return resultstring;}} 

messagedigest类

messagedigest类:为应用程序提供信息摘要算法的功能.比如md5算法和sha算法信息摘要是安全的单向hash函数 : 接收任意大小的数据,并输出固定长度的hash值

update

messagedigest对象在开始时会被初始化对象通过调用update() 方法处理数据
/** * 使用指定的byte数组更新摘要 * * @param input 指定的byte数组 */public void update(byte[] input);

ret

任何时候都可以调用ret() 方法重置摘要

digest

一旦所需要更新的数据都已经被更新后,应该调用digest() 方法完成hash计算对于给定数量的更新数据 ,digest() 方法只能被调用一次.再调用digest() 方法之后,messagedigest对象被重新设置成初始状态
/** * 通过执行诸如填充之类的最终操作完成hash计算.  * 在调用此方法之后,摘要被重置 * * @return byte[] hash计算后的byte数组 */public byte[] digest();

iqual

/** * 比较两个摘要的相等性.做简单的字节比较 * * @param digesta 比较的摘要字节数组a * @param digestb 比较的摘要字节数组b * @return boolean 是否相等 */public static boolean iqual(byte[] digesta, byte[] digestb);

getinstance

返回实现指定摘要算法的messagedigest对象
/** * 返回实现指定摘要算法的messagedigest对象 * * @param algorithm 请求的算法的名称 * @param provider 提供者名称 * @return messagedigest 指定摘要算法的messagedigest对象 * @throws nosuchalgorithmexception 当指定的请求算法名称不存在时抛出异常 */public static messagedigest getinstance(string algorithm) throws nosuchalgorithmexception; /** * 返回实现指定摘要算法的messagedigest对象 * * @param algorithm 请求算法的名称 * @return messagedigest 指定摘要算法的messagedigest对象 * @throws nosuchalgorithmexception 当指定的请求算法名称不存在时抛出异常 */public static messagedigest getinstance(string algorithm, string provider) throws nosuchalgorithmexception, nosuchproviderexception;
provider可以通过java.curity.curitygetproviders() 方法获得已注册的提我的母老虎供者列表sun提供的常用的算法:md2md5sha-1sha-256sha-384sha-512

字符串的md5加密算法

使用java自带的messagedigest实现对文本的md5加密算法:
/** * 将字符串转换为md5 */ public class parmd5 { public static string parstrtomd5l32(string str) { // 将字符串转换为32位小写md5  string restr = null; try { messagedigest md5 = messagedigest.getinstance("md5"); byte[] bytes = md5.digest(str.getbytes()); stringbuffer stringbuffer = new stringbuffer(); for (byte b : bytes) { int bt = b&0xff; if (bt < 16) { stringbuffer.append(0); } stringbuffer.append(integer.tohexstring(bt)); } restr = stringbuffer.tostring(); } catch (nosuchalgorithmexception e) { e.printstacktrace(); } return restr; }// 将字符串转换为32位大写的md5public static string parstrtomd5u32(string str) {string restr = parstrtomd5l32(str);if (restr != null) {restr = restr.toupperca();}return resstr;}// 将字符串转换为16位小写的md5public static string parstrtomd5l16(string str) {string restr = pastrtomd5l32(str);if (restr != null) {restr = restr.substring(8, 24);}return restr;}// 将字符串转换为16位大写的md5public static string parstrtomd5u16(string str) {string restr = parstrtomd5l32(str);if (restr != null) {restr = restr.toupperca().substring(8, 24);}return restr;} }

文本的md5加密工具类

java中提供了自带的messagedigest实现对文本的加密算法. 对文本进行加密的md5加密工具类如下:
public class md5util {// 将文本转换为32位小写的md5public static string texttomd5l32(string plaintext) {string result = null;// 判断需要转换的文本是否为空if (stringutils.isblank(plaintext忧伤)) {return null;}try {/给你整个世界/ 进行实例化和初始化messagedigest md5 = mes浙江省考报名时间sagedigest.getinstance("md5");// 得到一个操作系统默认的字节编码格式的字节数组byte[] byteinput = plaintext.getbytes();// 对得到的字节数组进行处理md5.update(byteinput);// 进行hash计算并得到返回结果byte[] btresult = md5.digest();// 得到进行hash计算后数据的长度stringbuffer stringbuffer = new stringbuffer();for (byte b : btresult) {int bt = b&0xff;if (bt < 16) {stringbuffer.append(0);}stringbuffer.append(integer.tohexstring(bt));}restr = stringbuffer.tostring();} catch (nosuchalgorithmexception e) {e.printstacktrace();}return restr;}// 将文本转换为32位大写的md5public static string texttomd5u32(string plaintext) {if (stringutils.isblank(plaintext)) {return null;}string result = texttomd5l32(plaintext);result = result.toupperca();return result;}}

本文发布于:2023-04-05 06:08:33,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/87eaacb74570afd7e5c505caf52c62db.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:md5工具使用方法(安卓md5校验工具apk).doc

本文 PDF 下载地址:md5工具使用方法(安卓md5校验工具apk).pdf

标签:算法   数组   摘要   字符串
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图