当前位置:首页 > 黑客服务 > 正文内容

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

访客3年前 (2022-01-05)黑客服务1023

使用Java的MessageDigest实现MD5加密算法

  • MD5加密算法的实现原理
  • MessageDigest类
    • update
    • reset
    • digest
    • isEqual
    • getInstance
  • 字符串的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 (NoSuchAlgorithmException e) { e.printStackTrace(); } return resultString; } }

MessageDigest类

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

update

  • MessageDigest对象在开始时会被初始化
  • 对象通过调用update() 方法处理数据

/** * 使用指定的byte数组更新摘要 * * @param input 指定的byte数组 */ public void update(byte[] input);

reset

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

digest

  • 一旦所需要更新的数据都已经被更新后,应该调用digest() 方法完成Hash计算
  • 对于给定数量的更新数据 ,digest() 方法只能被调用一次.再调用digest() 方法之后,MessageDigest对象被重新设置成初始状态

/** * 通过执行诸如填充之类的最终操作完成Hash计算. * 在调用此方法之后,摘要被重置 * * @return byte[] Hash计算后的byte数组 */ public byte[] digest();

isEqual

/** * 比较两个摘要的相等性.做简单的字节比较 * * @param digestA 比较的摘要字节数组A * @param digestB 比较的摘要字节数组B * @return boolean 是否相等 */ public static boolean isEqual(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.security.SecuritygetProviders() 方法获得已注册的提供者列表
  • SUN提供的常用的算法:
    • MD2
    • MD5
    • SHA-1
    • SHA-256
    • SHA-384
    • SHA-512

字符串的MD5加密算法

  • 使用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; } }

文本的MD5加密工具类

  • 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; } } www.gjsmg.com

扫描二维码推送至手机访问。

版权声明:本文由黑客接单发布,如需转载请注明出处。

本文链接:http://therlest.com/28844.html

分享给朋友:

“安卓md5校验工具apk(md5工具使用方法)” 的相关文章

约茶app约茶APP

最新约茶app都是哪些?整理了30本这篇文章主要介绍了约茶app,包括约茶app ios下载,下面小编整理了约茶app的图文教程,看看约茶app苹果版详细步骤吧! 觉得网上的一些答 据新快网2021年10月20日03:31:27的新闻报道,微博网友@R卜傲晴 爆料。 平安夜来临之际,事件,在网上...

身份证信息被黑客盗取(黑客能把手机内身份证信息盗取吗)

一、身份证信息被黑客盗取(黑客能把手机内身份证信息盗取吗)方法总结 1、黑客通过手身份姓名能否窃取别人银行卡里。朋友你好,这个问题不是这样理解的的,黑客是通过你的这些信息,破易你的银行卡号支付密码来盗取你的财物的,一般你只要不乱点链接,不轻易在手机。黑客控制了手机,窃取了身份证号码手机号姓名等所有...

家庭用水价格,生活用水价格

约64元,用水价格:生活用水:1点4元/吨,一般三口之家,181-260吨,营业电1元,用的比较少,至来年4月洗热水澡,自来水调价。 污水费0点,8价格元/吨,广州市的居民生活用水从原来的每立方米0点9元,水价也不一样。据此,很难说清楚。居室条件等等,生活用水会比较贵。 自来水费和污水处理费三部分,...

铁盖子可以放入高压锅蒸吗?装酱料的铁盖子,外面的涂层有些剥落,好

铁盖子可以放入高压锅蒸吗?装酱料的铁盖子,外面的涂层有些剥落,好 铁盖子可以放入高压锅蒸吗? 装酱料的铁盖子,外面的涂层有些剥落,好象也没锈,可以拿它盖严瓶子入高压锅蒸吗? 绝对不行!既危险又不卫生。盖住的瓶子在高压锅中加热,很容易形成压力差而爆炸;铁在高压锅中的水蒸汽作用下极易变成四氧化三...

纳智捷s5多少钱_纳智捷s5怎么样口碑

纳智捷如果销量再上不去可能就会退市了。维护保养不方便。虽然走的是高配低价路线但是油耗高,此情况发生了两次后来到4s店也没给,纳5这款车做工和质量.不仅损伤车子还非常的刺激心脏,你好,到二手市场问问对这款车的评价,内饰做工好一些。 不要急于出手,售后方面是不是真的很差?真诚希望各.发动机动力弱,比纯国...

果蔬清洗机有用吗(果蔬清洗机有用吗_真的可以去农残吗_)

2019-01-0913:09:0622号喜欢5收藏5条评论家用果蔬清洗机这种小众的厨房电器产品,突然在网上出现了大量的宣传,给了很多懒朋友一个花钱的借口。部分宣传图片中,清洗前后对比明显的恶心图片,农药残留检测对比视频等。使许多人开始正视这种果蔬清洗机的功能。在准备点菜的时候,其实很多人都有些怀疑...

评论列表

可难野侃
3年前 (2022-05-31)

try { // 进行实例化和初始化 MessageDigest md5 = MessageDigest.getInstance("MD5"); // 得到一个操作系统默认的字节编码格式的字节数组

北槐而川
3年前 (2022-05-31)

算法使用Java自带的MessageDigest实现对文本的MD5加密算法:/** * 将字符串转换为MD5 */ public class ParseMD5 { publ

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。