Android获取本应用的MD5值
16lz
2021-01-25
有些对安全要求比较高的应用,需要和服务器做MD5的校验,这里提供Android获取本应用的MD5值的方法
/** * 获取应用MD5 * @author YOLANDA * @param context * @return */public static String getAPKMD5(Context context) {String md5 = "";String path = context.getApplicationContext().getPackageResourcePath();File file = new File(path);try {md5 = StringUtil.getFileMD5String(file);} catch (Exception e) {e.printStackTrace();}return md5;}
/** * 获取文件MD5 * @author YOLANDA * @param file * @return * @throws Exception */public static String getFileMD5String(File file) throws Exception {InputStream fis;MessageDigest messagedigest = MessageDigest.getInstance("MD5");fis = new FileInputStream(file);byte[] buffer = new byte[1024];int numRead = 0;while ((numRead = fis.read(buffer)) > 0) {messagedigest.update(buffer, 0, numRead);}fis.close();return byte2Hex(messagedigest.digest());}
/** * byte[]转Hex字符串 * @author YOLANDA * @param b * @return */public static String byte2Hex(byte[] b) {if (null == b)return null;StringBuffer sBuffer = new StringBuffer();String sTmep;for (int i = 0; i < b.length; i++) {sTmep = Integer.toHexString(b[i] & 0xFF);if (sTmep.length() == 1)sBuffer.append("0");sBuffer.append(sTmep.toUpperCase(Locale.getDefault()));}return sBuffer.toString();}String转hex 16进制,hex16进制转String可以去看我另一片博文: http://blog.csdn.net/yanzhenjie1003/article/details/44887649
byte转hex16进制,hex16进制转byte去看:http://blog.csdn.net/yanzhenjie1003/article/details/44887621
int转hex 16进制,hex 16进制转int看:http://blog.csdn.net/yanzhenjie1003/article/details/44886931
更多相关文章
- 万字长文带你了解最常用的开源 Squid 代理服务器
- 一款常用的 Squid 日志分析工具
- 分支和循环(二)(零基础学习C语言)
- Nginx系列教程(一)| 手把手教你在Linux环境下搭建Nginx服务
- GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
- Nginx系列教程(三)| 一文带你读懂Nginx的负载均衡
- RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
- Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
- eclipse下如何关联android-support-v4.jar源码