md5工具使用方法(安卓md5校验工具apk) -九游会ag


  • md5加密算法的实现原理
  • messagedigest类
    • update
    • reset
    • digest
    • isequal
    • getinstance
  • 字符串的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 (nosuchalgorithmexception e) { e.printstacktrace(); } return resultstring; }} 
  • messagedigest类:为应用程序提供信息摘要算法的功能.比如md5算法和sha算法信息摘要是安全的单向hash函数 : 接收任意大小的数据,并输出固定长度的hash值
  • messagedigest对象在开始时会被初始化
  • 对象通过调用update() 方法处理数据
/** * 使用指定的byte数组更新摘要 * * @param input 指定的byte数组 */public void update(byte[] input);
  • 任何时候都可以调用reset() 方法重置摘要
  • 一旦所需要更新的数据都已经被更新后,应该调用digest() 方法完成hash计算
  • 对于给定数量的更新数据 ,digest() 方法只能被调用一次.再调用digest() 方法之后,messagedigest对象被重新设置成初始状态
/** * 通过执行诸如填充之类的最终操作完成hash计算. * 在调用此方法之后,摘要被重置 * * @return byte[] hash计算后的byte数组 */public byte[] digest();
/** * 比较两个摘要的相等性.做简单的字节比较 * * @param digesta 比较的摘要字节数组a * @param digestb 比较的摘要字节数组b * @return boolean 是否相等 */public static boolean isequal(byte[] digesta, byte[] digestb);
  • 返回实现指定摘要算法的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.security.securitygetproviders() 方法获得已注册的提供者列表
  • sun提供的常用的算法:
    • md2
    • md5
    • sha-1
    • sha-256
    • sha-384
    • sha-512
  • 使用java自带的messagedigest实现对文本的md5加密算法:
/** * 将字符串转换为md5 */ public class parsemd5 { public static string parsestrtomd5l32(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位大写的md5 public static string parsestrtomd5u32(string str) { string restr = parsestrtomd5l32(str); if (restr != null) { restr = restr.touppercase(); } return resstr; } // 将字符串转换为16位小写的md5 public static string parsestrtomd5l16(string str) { string restr = pasestrtomd5l32(str); if (restr != null) { restr = restr.substring(8, 24); } return restr; } // 将字符串转换为16位大写的md5 public static string parsestrtomd5u16(string str) { string restr = parsestrtomd5l32(str); if (restr != null) { restr = restr.touppercase().substring(8, 24); } return restr; } }
  • java中提供了自带的messagedigest实现对文本的加密算法. 对文本进行加密的md5加密工具类如下:
public class md5util { // 将文本转换为32位小写的md5 public static string texttomd5l32(string plaintext) { string result = null; // 判断需要转换的文本是否为空 if (stringutils.isblank(plaintext)) { return null; } try { // 进行实例化和初始化 messagedigest md5 = messagedigest.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位大写的md5 public static string texttomd5u32(string plaintext) { if (stringutils.isblank(plaintext)) { return null; } string result = texttomd5l32(plaintext); result = result.touppercase(); return result; } }

派优网部分新闻资讯、展示的图片素材等内容均为用户自发上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习交流。用户通过本站上传、发布任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的九游会ag的版权,请联系九游会ag一经核实,立即删除。并对发布账号进行封禁。

(0)
派大星的头像派大星

相关推荐

  • 在使用银行卡的过程中,有时候会出现银行卡丢失或损坏的情况,这时候我们需要进行补办原银行卡。下面我们就来介绍一下农业银行补办原银行卡的流程。 一、准备工作 在补办原银行卡之前,我们需…

    2023年7月31日
  • 投资金额在两万以内的好项目并不好找,现在市场上投资金额在10万以上的项目偏多。如果要找一个门槛低且投资金额少的项目,可以试试快递代收。开设快递驿站是零经验创业者也可以选择的好项目,…

    2022年12月17日
  • 小本生意成功案例有哪些(偏门日挣五百元的小本生意成功项目案例)

    有时候看起来很不起眼的小生意,但利润却是最高的行业!今天推荐生意人必看的40个小本生意成功案例大全! 很多商机容易被人们忽略,我在这里给大家推荐没人注意的***行业——它们很不起眼…

    2022年3月1日
  • 开设网店是许多创业者的首选,尤其在2024年,电商平台的发展趋势更是势不可挡。本文将详细解析2024年开个网店所需的成本以及无货源模式的具体操作方法,帮助您更好地规划自己的创业之路…

    2024年11月5日
  • 这两天准备买个机盘,上次买了ikbc的w200机械键盘,因为lp说没有数字键买什么键盘,所以就换入w210。 然后把w210茶轴放入购物车,然后说等个五个多小时就有秒杀活动。那好吧…

    2022年11月4日
  • 1、大洋洲,七大洲之中面积最小的一个,陆地总面积约897万平方千米,面积约占世界陆地总面积的6%。 2、大洋洲,人口约2900万人,是除了南极洲之外人口最少的一个大洲。大洋洲人口约…

    2022年3月18日 资讯投稿
  • 2024淘宝双11报名条件及截止时间是目前商家和消费者非常关注的话题。以下是关于2024淘宝双11的相关信息,旨在为读者提供详尽的解答,同时符合百度seo优化要求。 一、2024淘…

    2024年11月5日
  • 随着社会的发展,农业市场也变得越来越重要。企业需要了解农业市场的情况,以制定更好的市场营销策略。本文将详细介绍企业进行农业市场调研的步骤,并探讨数据分析方法。 步骤一:确定调研目的…

    2023年9月14日
  • 农业银行是中国最大的商业银行之一,其九游会ag的业务范围广泛,服务覆盖面广。在亳州,农业银行也是广受欢迎的银行之一。如果您是新手,想要办理农业银行卡,下面是详细的办卡流程。 第一步:选择卡种 …

    2023年11月17日
  • 拼多多店铺注册人能不能更改信息(拼多多个人店铺变更主体的规定)

    拼多多网店能否更改**是许多卖家在电商平台经营中常遇到的问题之一。在这篇文章中,我们将详细探讨拼多多网店是否能够更改**以及是否可以修改***信息,以帮助卖家更好地了解和处理相关问…

    2024年3月6日
返回顶部
网站地图