美文网首页程序员Android Studio
嘿,你知道如何获取sha1码么?

嘿,你知道如何获取sha1码么?

作者: 暮云清风 | 来源:发表于2016-03-21 13:40 被阅读945次
    SHA

    1.啥是sha码?

    安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准(Digital Signature Standard DSS)里面定义的数字签名算法(Digital Signature Algorithm DSA)。对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要。该算法经过加密专家多年来的发展和改进已日益完善,并被广泛使用。该算法的思想是接收一段明文,然后以一种不可逆的方式将它转换成一段(通常更小)密文,也可以简单的理解为取一串输入码(称为预映射或信息),并把它们转化为长度较短、位数固定的输出序列即散列值(也称为信息摘要或信息认证代码)的过程。散列函数值可以说是对明文的一种“指纹”或是“摘要”所以对散列值的数字签名就可以视为对此明文的数字签名。

    2.如何获取sha1码?

    在eclipse中获取sha1码

    如果你是用的eclipse在开发,那么获取sha1码还是比较简单的。直接:winows -> preferance -> android -> build。(我的eclipse卸载了,所以借用网友的图)

    eclipse中获取
    在Android Studio中获取sha1码

    最近开发,在集成高德地图的时候用到了sha1码。我就用我获取的过程举例,这样可能更加直观,大家也能马上用到。

    申请高德地图的Key的时候分别需要调试模式下的sha1码和发布模式下的sha1码。

    获取调试模式下的sha1码
    其实,如果你仔细看高德官方文档,文档中是告诉你如何获取sha1码的,而且有多种方法。这里我只说如何通过命令行获取。以及获取过程中的一些小坑。
    打开dos窗口,按照官方提供的方法输入keytool -list -v -keystore debug.keystore这时你可能遇见第一个坑,提示你keytool 不是内部命令也不是可运行程序

    不是内部或外部命令
    这个是因为keytool是java命令,如果你没有将C:\Program Files\Java\jdk1.7.0_67\bin加入到path中是无法使用该命令的。如果不想添加到path中,你也可以切换到该目录下再使用keytool命令。

    成功添加或切换后,你继续使用keytool -list -v -keystore debug.keystore命令,你就会掉到第二个坑当中,提示你秘钥库文件不存在。

    秘钥库文件不存在
    这里的秘钥库文件就是指的debug.keystore,它在哪呢?一般我们默认生成的位置在c:\users\Administrator\.android\debug.keystore 。所以上面的命令可以修改为:keytool -list -v -keystore c:\users\Administrator\.android\debug.keystore -alias androiddebugkey -storepass android -keypass android
    • -alias为别名,一般默认为androiddebugkey
    • -storepass和-keypass都是密码,一般都是默认为android
      如果你发现没有debug.keystore文件,那你就得自己生成一个了,具体生成问某度。
      调试模式

    经过以上步骤,你已经拿到了调试模式下的sha1码了,但是我们正式发布我们的项目的时候sha1码是不一样的。

    要想获取发布版的sha1码你得有自己的keystore。在Android Studio中你可以方便的创建自己的keystore。步骤:点击工具栏 Build --> generate singed apk,填写相关信息, 按步骤生成自己的keystore。
    然候在命令行中输入:keytool -list -v -keystore E:\{yourpath}\keystore\app.jks -alias app -storepass mima -keypass mima

    • -alias 别名,就是你生成keystore时填写的别名,我这里填写的是app
    • mima 就是是你自己设置的密码,填写正确就可以

    如果你都填写正确,就会得到与上图类似的窗口,你可以看到你发布模式下的sha1码了,这里我就不再截图了。

    有时候还需要获取应用的签名,同样是使用上面的命令,获取到的MD5就是你的应用签名。

    高德官方获取sha1码方法

    相关文章

      网友评论

        本文标题:嘿,你知道如何获取sha1码么?

        本文链接:https://www.haomeiwen.com/subject/mtuklttx.html