【发布时间】:2018-07-06 08:20:29
【问题描述】:
我正在使用 twilio sdk 将短信验证与我的 android 应用程序集成,twilio 要求我注册我的应用程序的哈希签名,并且生成哈希签名的方法无效,总是说它是无效的哈希签名 这是 twilio 想要哈希签名的路径
【问题讨论】:
标签: java android twilio twilio-api
我正在使用 twilio sdk 将短信验证与我的 android 应用程序集成,twilio 要求我注册我的应用程序的哈希签名,并且生成哈希签名的方法无效,总是说它是无效的哈希签名 这是 twilio 想要哈希签名的路径
【问题讨论】:
标签: java android twilio twilio-api
用户在 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) {
}
【讨论】:
在您的 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);
}
}
【讨论】: