您的位置:首页 > 移动开发 > Android开发

android keystore sha1 md5的理解

2014-11-05 11:47 169 查看
一直对这个加密的东西不理解,看了一个上午,自己整理消化一下:

android的应用程序发布出来都是需要加密的,否则就会轻易被篡改或者替换,为此才有keystore。网上解释:是java的密钥库、用来进行通信加密用的、比如数字签名。keystore就是用来保存密钥对的,比如公钥和私钥。

也就是说keystore是用来在打包apk的时候对apk程序进行加密处理用的,也就是所谓的数字证书加密;

我们的eclipse中有默认的keystore,也就是数字证书,不过这个是我们run
as project的时候调试用的,也就是debugkeystore,在windows--preference--android--build中可以看到,他这个是自动生成的,cmd模式下,用keytool -list -v -keystore debug.keystore可以看到其中包含的内容,其密码是android。所以,在正式发布apk的时候是不能用这个的,发布时后的keystore需要我们自己去生成,填写密码等一些信息生成,keytool
-genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore android.keystore 。然后在你的工程上右击androidtool--export asign application,用生成的这个keystore就可以了。

具体是怎么加密的,这个过程很复杂,还没达到这个等级-_-

接下来是sha1 md5,我的理解就是把任意长度的信息,通过一些算法,生成固定长度的字符串,只要这些信息有变动,那么生成的sha1,md5就会变化,通过这样来保护文件没有被改动过。而且根据生成的字符串是不会推算出来原来的内容的。(sha1,md5生成的字符串长度不一样)

那么这样就会根据keystore生成相应的sha1和md5,保存在mainfest.mf中。

既然apk是通过数字证书来加密的,如果程序要更新的话,怎么来保证更新的程序是对的呢,那么就是通过验证数字证书是否是相同的,那怎么来保证数字证书是相同的呢,就是通过sha1,md5来保证的(自己理解-_-)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: