Android获取SHA1和MD5值

1.AndroidStudio签名及获取SHA1

一、生成签名文件

1. 在as菜单栏中找到“bulid”这一栏,选择“Generate Signed APK”
这里写图片描述

2. 这里选择新建一个文件。

  • ”Create new…”新建一个签名文件
  • ”Choose existing…”选择一个已经存在的签名文件

这里写图片描述

3. 填写完整的签名信息。这里密码统一填写“android”,别名写个“key”即可。其他的信息根据实际情况和需求填写,并不很重要。

  • Key store path : 签名文件路径
  • Password : 签名密码
  • Confirm : 确认密码
  • Alias : 别名
  • Validity ( years ) : 有限期 (年)
  • First and Last Name : 全名
  • Organizational Unit : 组织单位
  • Organization : 组织
  • City or Locality : 城市或地方
  • State or Province : 州或省
  • Country Code(XX) : 国家代码

这里写图片描述

4. 填写完成选择OK。来到以下这个页面
这里写图片描述

5. 猛击下一步。在Build Type选择构建类型release。选择Finish这样就生成了签名文件。

  • APK Destination Folder : apk目标文件夹
  • Build Type : 构建类型
  • release是发布版本用的签名文件
  • debug是debug用的签名文件
    这里写图片描述

二、配置gradle让APP自动签名

1 . 在as菜单栏中选择如下图标
这里写图片描述
2 . 选择“String”菜单栏—>选中”+”添加标签—>填写一个自定义的名称—>根据新建签名文件时的信息填写完整
这里写图片描述

3 . 填写完成选择OK。在studio编译完成后,会在build.gradle文件中会自动生成如下配置信息,大功告成。
这里写图片描述


三、Studio生成SHA1和MD5值

方法一,生成SHA1和MD5值可以使用DOS窗口命令生成,在as中我们可以直接使用Terminal工具

1 . 在as底部菜单栏中选择Terminal工具
这里写图片描述


2 . 使用DOS命令将目录切换成donkor.jks文件目录下,输入keytool -list -v -keystore donkor.jks,按下回车键。输入keystore密码 android(这个是新建签名文件时填写完整信息对应的密码,“android”是我当时填写的密码),即可完成。
这里写图片描述
这里写图片描述


方法二,Studio工具中,在右侧找到菜单栏“Gradle”—>”APP名”—>“Tasks”—>“android”—>双击“signReport”即可。这时生成出来的只是debug的SHA1和MD5值。
这里写图片描述

如果想要生成release的SHA1和MD5的值,需要在build.gradle中配置如下。重复上述操作即可得到debug,release的SHA1和MD5的值。

这里写图片描述


2. Eclipse获取Sha1

获取 Sha1 值
开发模式(debug)和发布模式(release)下的 sha1 值是不同的,发布 apk时 需要根据发布apk对应的keystore重新配置Key,获取发布模式下的sha1的方法请参考方法二
下面介绍获取 Sha1 值的方法。
通过Eclipse获取SHA1:
使用 adt 22 以上版本,可以在 eclipse 中直接查看。Windows:依次在 eclipse 中打开 Window -> Preferances -> Android -> Build。Mac:依次在 eclipse 中打开 Eclipse/ADT->Preferances -> android -> Build。在弹出的 Build 对话框中 “SHA1 fingerprint” 中的值即为 Android 签名证书的 Sha1 值,如下图所示:

SHA1 fingerprint

通过Android Studio获取SHA1:
第一步、打开Android Studio的Terminal工具
第二步、输入命令:keytool  -list -v  -keystore keystore文件路径
第三步、输入Keystore密码

SHA1 fingerprint

使用 keytool(jdk自带工具)获取SHA1:
,按照如下步骤进行操作:
1.运行进入控制台。

控制台

2.在弹出的控制台窗口中输入 cd .android 定位到 .android 文件夹。

.android 文件夹

3.继续在控制台输入命令。
开发模式使用 debug.keystore,命令为:keytool -list -v -keystore debug.keystore发布模式使用 apk 对应的 keystore,命令为:keytool -list -v -keystore apk的keystore如下所示:

继续在控制台输入命令

提示输入密钥库密码,开发模式默认密码是 android,发布模式的密码是为 apk 的 keystore 设置的密码。输入密钥后回车(如果没设置密码,可直接回车),此时可在控制台显示的信息中获取 Sha1 值,如下图所示:

Sha1 值

说明:keystore 文件为 Android 签名证书文件。


3.获取APK签名打包的SHA1

1.把apk的格式改为压缩文件,进行解压。
2.在解压出来的文件中获取META-INF文件夹下的CERT.RSA文件。
3.打开cmd Keytool –printcert –file 后面接文件的路径。
这里写图片描述
这样就能获取到apk的sha1和md5了


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android获取SHA1可以通过以下步骤实现: 1. 打开项目的Android Studio。 2. 在Project视图中,展开app文件夹并找到app -> src -> main -> java -> 你的项目包名的文件夹。 3. 在该文件夹中创建一个新的Java类文件,命名为FingerPrintHelper(或其他你喜欢的名称)。 4. 在FingerPrintHelper类中添加以下代码: ```java import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.Signature; import android.util.Base64; import android.util.Log; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class FingerPrintHelper { private static final String TAG = FingerPrintHelper.class.getSimpleName(); public static void getSHA1(Context context) { try { PackageInfo packageInfo = context.getPackageManager().getPackageInfo( context.getPackageName(), PackageManager.GET_SIGNATURES); for (Signature signature : packageInfo.signatures) { MessageDigest md = MessageDigest.getInstance("SHA1"); md.update(signature.toByteArray()); byte[] sha1Hash = md.digest(); String sha1 = Base64.encodeToString(sha1Hash, Base64.NO_WRAP); Log.e(TAG, "SHA1: " + sha1); } } catch (PackageManager.NameNotFoundException | NoSuchAlgorithmException e) { e.printStackTrace(); } } } ``` 5. 现在你可以在你的项目的任何地方调用getSHA1()方法来获取SHA1哈希。例如,在MainActivity的onCreate()方法中添加以下代码: ```java FingerPrintHelper.getSHA1(this); ``` 6. 运行你的应用程序,并在Android Studio的Logcat中查看SHA1。 注意:在使用SHA1时,请记住将其用于适当的目的,比如在Google开发者控制台上注册应用程序或使用Google Maps API。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值