
eclipse项目在eclipse上查看和修改MD5非常方便,如下图所示:
(1)利用项目的 keystore 文件
(2)通过CERTRSA文件查询MD5签名
具体步骤如下:
1)解压得到RSA文件
APK以zip文件方式打开,在\META-INF\目录中存在一个RSA后缀的文件,一般名为CERTRSA
2)使用keytool命令获取 MD5签名
这里以字符串123456为例子,它的md5密文值为:e10adc3949ba59abbe56e057f20f883e
这里以1txt为需要被加密的文件。
一、 用oppnssl md5 加密字符串和文件的方法。
1 oppnssl md5 加密字符串的方法
a手动输入命令及过程如下:
#openssl //在终端中输入openssl后回车。
OpenSSL> md5 //输入md5后回车
123456 //接着输入123456,不要输入回车。然后按3次ctrl+d。
123456e10adc3949ba59abbe56e057f20f883e //123456后面的就是密文了
解释:为何在输入123456后不回车呢?
是因为openssl默认会把回车符当做要加密的字符串中的一个字符,所以得到的结果不同。如果你输入123456后回车,在按2次ctrl+d。得到的结果是:
OpenSSL> md5
123456
f447b20a7fcbf53a5d5be013ea0b15af //因为openssl不忽略回车符导致的
b或者直接用管道命令
# echo -n 123456 | openssl md5 //必须要有-n参数,否则就不是这个结果了。
e10adc3949ba59abbe56e057f20f883e
解释:为何要加-n这个参数?
-n就表示不输入回车符,这样才能得到正确的结果。如果你不加-n,那么结果和前面说的一样为:
f447b20a7fcbf53a5d5be013ea0b15af //因为openssl不忽略回车符导致的
2用openssl加密文件。
#openssl md 5 -in 1txt
##################################################3
Openssl其他相关加密的命令参数:引自:实用命令:利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密 收藏
一 利用openssl命令进行BASE64编码解码(base64 encode/decode)
1 BASE64编码命令
对字符串‘abc’进行base64编码:
# echo abc | openssl base64
YWJjCg== (编码结果)
如果对一个文件进行base64编码(文件名ttxt):
# openssl base64 -in ttxt
2 BASE64解码命令
求base64后的字符串‘YWJjCg==’的原文:
# echo YWJjCg== | openssl base64 -d
abc (解码结果)
如果对一个文件进行base64解码(文件名tbase64):
# openssl base64 -d -in tbase64
二 利用openssl命令进行md5/sha1摘要(digest)
1 对字符串‘abc’进行md5摘要计算:echo abc | openssl md5
若对某文件进行md5摘要计算:openssl md5 -in ttxt
2 对字符串‘abc’进行sha1摘要计算:echo abc | openssl sha1
若对某文件进行sha1摘要计算:openssl sha1 -in ttxt
三 利用openssl命令进行AES/DES3加密解密(AES/DES3 encrypt/decrypt)
对字符串‘abc’进行aes加密,使用密钥123,输出结果以base64编码格式给出:
# echo abc | openssl aes-128-cbc -k 123 -base64
U2FsdGVkX18ynIbzARm15nG/JA2dhN4mtiotwD7jt4g= (结果)
对以上结果进行解密处理:
# echo U2FsdGVkX18ynIbzARm15nG/JA2dhN4mtiotwD7jt4g= | openssl aes-128-cbc -d -k 123 -base64
abc (结果)
若要从文件里取原文(密文)进行加密(解密),只要指定 -in 参数指向文件名就可以了。
进行des3加解密,只要把命令中的aes-128-cbc换成des3就可以了。
注:只要利用openssl help就可以看到更多的安全算法了。
###############################################
二、 利用php的md5函数加密字符串
#touch aphp //创建aphp文件
#vi aphp //用vi 编辑aphp文件
将<php echo md5(123456); >输入进去后保存
#php aphp //运行aphp文件
显示:e10adc3949ba59abbe56e057f20f883e
三、 利用md5sum命令
A在linux或Unix上,md5sum是用来计算和校验文件报文摘要的工具程序。一般来说,安装了Linux后,就会有md5sum这个工具,直接在命令行终端直接运行。可以用下面的命令来获取md5sum命令帮助 man md5sum
#md5sum –help
有个提示:“With no FILE, or when FILE is -, read standard input”翻译过来就是“如果没有输入文件选项或者文件选项为 - ,则从标砖读取输入内容”,即可以直接从键盘读取字符串来加密。
利用md5sum加密字符串的方法
# md5sum //然后回车
123456 //输入123456然后按两次ctrl+d
显示:
123456e10adc3949ba59abbe56e057f20f883e 红色代表加密后的值
还可以用管道命令:
#echo -n '123123' | md5sum
或者写成md5加密脚本,名字叫md5sh,
将以下内容复制进脚本里:
#!/bin/bash
echo -n $1 | md5sum | awk '{print $1}'
保存后,给脚本执行权限。
#sh md5sh 123456
显示:e10adc3949ba59abbe56e057f20f883e
B其实也可以将文本放入文本文件,然后用md5sum 加密改文本,也可以得到字符串加密的值。过程如下:
#touch atxt
#echo -n 123456 > atxt //将123456写进文本文件,不能丢了 –n参数,避免回车符干扰
#md5sum atxt
显示:e10adc3949ba59abbe56e057f20f883e atxt
ctrl+d有两个含义:
一是向程序发送文件输入结束符EOF。
二是向程序发送exit退出指令。程序收到信号后具体动作是结束输入、然后等待,还是直接退出,那就要看该程序捕获信号后是如何 *** 作的了。
md5sum属于第一个含义。两次strl+d了,第一次读取EOF指令,再次捕获就会当成exit指令。而shell一类的程序,会直接把ctrl+d解析为退出指令。
得到APK的RSA证书文件
使用Java工具的keyytool命令获取
使用该工具准备条件(2选1即可):
安装JDK(Java Development Kit)环境即可
为确保运行,可添加到环境变量或者在cmd窗口中中cd到对应路径执行。keytool命令对应文件keytoolexe的目录一般为C:\Program Files\Java\jre7\bin\keytoolexe
具体步骤
1、解压得到RSA文件
APK以zip文件方式打开,在\META-INF\目录中存在一个RSA后缀的文件,一般名为CERTRSA
2、使用keytool命令获取证书信息(包括MD5)
运行如下keytool命令即可:
keytool -printcert -file CERTRSA
package mybag;
import javaioFile;
import javaioFileInputStream;
import javamathBigInteger;
import javasecurityMessageDigest;
import javautilHashMap;
import javautilMap;
import androidappActivity;
import androidosBundle;
import androidutilLog;
public class FileDigest extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
superonCreate(savedInstanceState);
File file = new File("/mnt/sdcard/123txt");
Loge("MD5", getFileMD5(file));
}
public static String getFileMD5(File file) {
if (!fileisFile()) {
return null;
}
MessageDigest digest = null;
FileInputStream in = null;
byte buffer[] = new byte[1024];
int len;
try {
digest = MessageDigestgetInstance("MD5");
in = new FileInputStream(file);
while ((len = inread(buffer, 0, 1024)) != -1) {
digestupdate(buffer, 0, len);
}
inclose();
} catch (Exception e) {
eprintStackTrace();
return null;
}
BigInteger bigInt = new BigInteger(1, digestdigest());
return bigInttoString(16);
}
public static Map getDirMD5(File file, boolean listChild) {
if (!fileisDirectory()) {
return null;
}
Map map = new HashMap();
String md5;
File files[] = filelistFiles();
for (int i = 0; i < fileslength; i++) {
File f = files[i];
if (fisDirectory() && listChild) {
mapputAll(getDirMD5(f, listChild));
} else {
md5 = getFileMD5(f);
if (md5 != null) {
mapput(fgetPath(), md5);
}
}
}
return map;
}
}
最后不要忘了在manifest中添加权限
原来在Eclipse中获取SHA1或者MD5,在IDE界面上就可以查找到。
切换到Android Studio后,如何查看呢?找了半天没找到。那就老办法命令行。
第一步、打开Android Studio的Tools->Open Terminal
第二步、输入命令:keytool -v -list -keystore keystorejks
一定要记得加上 -v 参数,不然只能看到SHA1,没有MD5keystorejks,需要替换为你自己的密钥所在路径和文件名
需要导入一个jar包:commons-codec
代码如下:
import orgapachecommonscodecdigestDigestUtils;
public class ToMain {
public static void main(String[] args) {
Systemoutprintln(DigestUtilsmd5Hex("baiducom"));
}
}
1、Java
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
2、名字来源
Java是印度尼西亚爪哇岛的英文名称,因盛产咖啡而闻名。Java语言中的许多库类名称,多与咖啡有关:如JavaBeans(咖啡豆)、NetBeans(网络豆)以及ObjectBeans(对象豆)等等。SUN和JAVA的标识也正是一杯正冒着热气的咖啡。
以上就是关于如何查看APK的MD5签名全部的内容,包括:如何查看APK的MD5签名、linux怎么获取使用md5处理前的密码、keytool怎么获取到证书指纹MD5的值只要MD5,不要其他的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)