我被小叔夜夜承欢膝下,徐水新闻,个人房屋出租协议
本文实例讲述了android获取apk签名指纹的md5值以防止重新被打包的实现方法。分享给大家供大家参考,具体如下:
做个记录(这里只是java层的签名校验,java层容易被破解,我建议apk加固下)
获取md5值来进行apk签名校验, 可以防止apk重新被打包。
下面我说说怎么获取apk签名的md5值(有三种方法)
1.用代码获取签名指纹的md5值
/** * md5加密 * @param bytestr 需要加密的内容 * @return 返回 bytestr的md5值 */ public static string encryptionmd5(byte[] bytestr) { messagedigest messagedigest = null; stringbuffer md5strbuff = new stringbuffer(); try { messagedigest = messagedigest.getinstance("md5"); messagedigest.reset(); messagedigest.update(bytestr); byte[] bytearray = messagedigest.digest(); for (int i = 0; i < bytearray.length; i++) { if (integer.tohexstring(0xff & bytearray[i]).length() == 1) { md5strbuff.append("0").append(integer.tohexstring(0xff & bytearray[i])); } else { md5strbuff.append(integer.tohexstring(0xff & bytearray[i])); } } } catch (nosuchalgorithmexception e) { e.printstacktrace(); } return md5strbuff.tostring(); }
/** * 获取app签名md5值 */ public string getsignmd5str() { try { packageinfo packageinfo = mactivity.getpackagemanager().getpackageinfo(mactivity.getpackagename(), packagemanager.get_signatures); signature[] signs = packageinfo.signatures; signature sign = signs[0]; string signstr = encryptionmd5(sign.tobytearray()); return signstr; } catch (packagemanager.namenotfoundexception e) { e.printstacktrace(); } return ""; }
2. keytool工具
使用keytool工具获取签名md5信息,下面 key是签名文件
3. eclipse 里面可以查看签名信息 这里就不赘述
更多关于android相关内容感兴趣的读者可查看本站专题:《android控件用法总结》、《android视图view技巧总结》、《android文件操作技巧汇总》、《android操作sqlite数据库技巧总结》、《android操作json格式数据技巧总结》、《android数据库操作技巧总结》、《android编程之activity操作技巧总结》、《android编程开发之sd卡操作方法汇总》、《android开发入门与进阶教程》及《android资源操作技巧汇总》
希望本文所述对大家android程序设计有所帮助。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Android Manifest中meta-data扩展元素数据的配置与获取方式
Android实现获取meta-data和build.gradle的值
Android获取清单文件中的meta-data,解决碰到数值为null的问题
解决webview 第二次调用loadUrl页面不刷新的问题
解决Android WebView拦截url,视频播放加载失败的问题
Android webview加载https链接错误或无响应的解决
网友评论