如何生成哈希签名?
How to generate hash signature?
我正在使用 twilio sdk 将短信验证与我的 android 应用程序集成,twilio 要求我注册我的应用程序的哈希签名,但生成哈希签名的方法都行不通,总是说它是无效的哈希签名
这是 twilio 想要哈希签名的路径
在您的 Activity onCreate() 中调用此方法并
使用密钥 "HashKey"
在 logcat 中搜索您的密钥
public static void printHashKey(Context pContext) {
try {
PackageInfo info = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
String hashKey = new String(Base64.encode(md.digest(), 0));
Log.d("HashKey", "printHashKey() Hash Key: " + hashKey);
}
} catch (NoSuchAlgorithmException e) {
Log.e(TAG, "printHashKey()", e);
} catch (Exception e) {
Log.e(TAG, "printHashKey()", e);
}
}
用户在 android studio 终端中的命令生成发布密钥哈希
keytool -exportcert -alias [aliasname] -keystore [your app keystore path] | openssl sha1 -binary | openssl base64
在您的项目中获取开发密钥哈希的代码下方
try {
android.content.pm.PackageInfo info = getPackageManager().getPackageInfo(
"com.apps.sonictonic",
android.content.pm.PackageManager.GET_SIGNATURES);
for (android.content.pm.Signature signature : info.signatures) {
java.security.MessageDigest md = java.security.MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
android.util.Log.d("KeyHash", "KeyHash:" + android.util.Base64.encodeToString(md.digest(),
android.util.Base64.DEFAULT));
}
} catch (android.content.pm.PackageManager.NameNotFoundException e) {
} catch (java.security.NoSuchAlgorithmException e) {
}
如果您已将您的应用选择为 Google Play 托管签名,则您需要使用一组不同的步骤来获取正确的签名哈希。
我正在使用 twilio sdk 将短信验证与我的 android 应用程序集成,twilio 要求我注册我的应用程序的哈希签名,但生成哈希签名的方法都行不通,总是说它是无效的哈希签名 这是 twilio 想要哈希签名的路径
在您的 Activity onCreate() 中调用此方法并 使用密钥 "HashKey"
在 logcat 中搜索您的密钥public static void printHashKey(Context pContext) {
try {
PackageInfo info = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
String hashKey = new String(Base64.encode(md.digest(), 0));
Log.d("HashKey", "printHashKey() Hash Key: " + hashKey);
}
} catch (NoSuchAlgorithmException e) {
Log.e(TAG, "printHashKey()", e);
} catch (Exception e) {
Log.e(TAG, "printHashKey()", e);
}
}
用户在 android studio 终端中的命令生成发布密钥哈希
keytool -exportcert -alias [aliasname] -keystore [your app keystore path] | openssl sha1 -binary | openssl base64
在您的项目中获取开发密钥哈希的代码下方
try {
android.content.pm.PackageInfo info = getPackageManager().getPackageInfo(
"com.apps.sonictonic",
android.content.pm.PackageManager.GET_SIGNATURES);
for (android.content.pm.Signature signature : info.signatures) {
java.security.MessageDigest md = java.security.MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
android.util.Log.d("KeyHash", "KeyHash:" + android.util.Base64.encodeToString(md.digest(),
android.util.Base64.DEFAULT));
}
} catch (android.content.pm.PackageManager.NameNotFoundException e) {
} catch (java.security.NoSuchAlgorithmException e) {
}
如果您已将您的应用选择为 Google Play 托管签名,则您需要使用一组不同的步骤来获取正确的签名哈希。