标签: android-keystore

Android android.credentials.UNLOCK 在没有密码的情况下初始化密钥库

有一个随机密钥来通过 AES 加密本地凭据,我正在按照以下教程尝试安全地存储该密钥,然后能够在以后解密:

nelenkov.blogspot.co.uk 在 android 中存储应用程序机密

本教程解释了如何访问系统密钥库并将密码存储在其中。

我面临的问题集中在调用UNLOCK ( android.credentials.UNLOCK ) KeyStore 上。未初始化 KeyStore 的设备(目前 API 低于 14),它们会显示一个对话框,要求输入 8 位密码。

本教程运行良好,但是显示此对话框甚至只显示一次,它会打扰大多数用户。

有什么办法可以跳过这个对话框吗?

如果有人描述了一种在本地保留密钥的更好方法,我会更高兴。

encryption android credentials aes android-keystore

3
推荐指数
1
解决办法
5920
查看次数

将 .p12 文件导入 AndroidKeyStore

用户在 SD 卡上保存了一个 .p12 文件(例如他的 S/MIME 证书)。我想将此证书(或提取的私钥和公钥)加载到 AndroidKeyStore 中。

File file = new File(pathToP12File);
Certificate c = null; // TODO: convert file into something I can load into the keystore

KeyStore ks = KeyStore.getInstance("AndroidKeyStore");
ks.load(null);
ks.setCertificateEntry("myCertAlias", c);
Run Code Online (Sandbox Code Playgroud)

将文件转换为可以在密钥库中设置为证书条目的最佳方法是什么?

android x509certificate android-keystore

3
推荐指数
1
解决办法
4170
查看次数

密钥工具错误:java.io.IOException:密钥库被篡改,或密码不正确,Android 密钥库

我正在尝试访问我的密钥库,因为我需要获取 SHA1 指纹以生成发布的 Google Maps Api 密钥:google map docs

当尝试在命令行上输入我的密钥(或复制和粘贴它)时,我得到以下信息:

keytool error: java.io.IOException: Keystore was tampered with, or password was incorrect

现在,如果我进入 Android Studio 并选择“生成签名的 APK”,它会询问我的密钥库密码,如果我输入它,(连同别名和别名通行证)我可以单击完成并开始构建一个版本APK(当然它失败了,因为如上所述,我需要一个 Google Maps发布密钥而不是调试密钥。)

因此,我知道它必须是正确的密码,但我仍然收到此错误。有没有其他人经历过这种情况?可能的原因是什么,解决方法是什么?

java android keystore jks android-keystore

3
推荐指数
1
解决办法
1万
查看次数

Android - 从密钥库导出单个密钥/别名

我有一个单独的密钥库(JKS),其中包含许多用于不同应用程序的密钥条目/别名.现在,一个应用程序将被移动到另一个开发人员,我想为他导出/提取单个键/别名.

> keytool.exe -list -keystore Keystorefile

Keystore-type: JKS
Keystore-provider: SUN

Keystore contains 6 entries

Appname1, 01.07.20XX, PrivateKeyEntry,
certificate-Fingerprint (SHA1): AA:BB:CC:DD:EE:FF:GG:HH:II:JJ:KK:LL:MM:NN:OO:PP:Q
Q:RR:SS:TT
Appname2, 29.05.20XX, PrivateKeyEntry,
certificate-Fingerprint (SHA1): AA:BB:CC:DD:EE:FF:GG:HH:II:JJ:KK:LL:MM:NN:OO:PP:Q
Q:RR:SS:TT
Appname3, 30.09.20XX, PrivateKeyEntry,
certificate-Fingerprint (SHA1): AA:BB:CC:DD:EE:FF:GG:HH:II:JJ:KK:LL:MM:NN:OO:PP:Q
Q:RR:SS:TT
Appname4, 18.02.20XX, PrivateKeyEntry,
certificate-Fingerprint (SHA1): AA:BB:CC:DD:EE:FF:GG:HH:II:JJ:KK:LL:MM:NN:OO:PP:Q
Q:RR:SS:TT
Appname5, 09.08.20XX, PrivateKeyEntry,
certificate-Fingerprint (SHA1): AA:BB:CC:DD:EE:FF:GG:HH:II:JJ:KK:LL:MM:NN:OO:PP:Q
Q:RR:SS:TT
Appname6, 11.02.20XX, PrivateKeyEntry,
certificate-Fingerprint (SHA1): AA:BB:CC:DD:EE:FF:GG:HH:II:JJ:KK:LL:MM:NN:OO:PP:Q
Q:RR:SS:TT
Run Code Online (Sandbox Code Playgroud)

这是我的Keystore的输出,现在我只想导出Key for Appname2.如果可能的话,这可以在另一个Keystore中导入.

谢谢!

android android-keystore

3
推荐指数
1
解决办法
3140
查看次数

从 Android 密钥库中提取密钥

来自Android 密钥库文档

Android 密钥库系统可保护密钥材料免遭未经授权的使用。首先,Android 密钥库通过防止从应用程序进程和整个 Android 设备中提取密钥材料,减少了在 Android 设备外部未经授权使用密钥材料的情况。其次,Android KeyStore 通过让应用程序指定其密钥的授权使用,然后在应用程序进程之外强制执行这些限制,从而减少 Android 设备上未经授权使用密钥材料的情况。

我无法完全理解它。

通过防止从应用程序流程中提取关键材料

  • 这是什么意思?设备中的任何应用程序进程都无法从存储中提取密钥?
  • 因此,一旦钥匙放入商店,就无法从商店获取它(以防我也想在其他地方使用它)。因此,如果我想这样做,我该如何实现我自己的自定义密钥库,它允许仅为我的应用程序进程提取密钥,而不能为其他人提取密钥。

android android-keystore

3
推荐指数
1
解决办法
3271
查看次数

javalang.exception:未生成密钥对,别名<androiddebugkey>已存在且java.io.filenotfoundexception:debug.keystore

我输入以下内容

keytool -genkey -v -keystore debug.keystore -storepass android -alias androiddebugkey -keypass android -keyalg RSA -keysize 2048 -validity 10000
Run Code Online (Sandbox Code Playgroud)

在cmd中生成调试keytool.

但是,我收到了错误

java.io.filenotfoundexception:debug.keystore"而不是.之后我将上面的命令更改为"keytool -genkey -v -keystore C:\ Users\me.android\debug.keystore -storepass android -alias androiddebugkey -keypass android -keyalg RSA -keysize 2048 -validity 10000

而这次我收到了另一个错误

javalang.exception:未生成密钥对,别名已存在

这里出了什么问题?我在这里尝试做的只是生成一个新的调试密钥库.

debugging android-keystore

3
推荐指数
1
解决办法
7284
查看次数

android-keystore的密码是否为空?

我在 Android Studio 的终端上尝试了这个命令:

keytool -list -v -alias androiddebugkey -keystore "C:\Users\Shehar Yar Khan\.android\debug.keystore"
Run Code Online (Sandbox Code Playgroud)

但无法输入密码。事实上,键盘卡在终端(在命令提示符上也是如此),但在 Chrome 和其他应用程序上运行良好。因此,我尝试按“Enter”键,这就是我看到的:

*****************  WARNING WARNING WARNING  *****************
* The integrity of the information stored in your keystore  *
* has NOT been verified!  In order to verify its integrity, *
* you must provide your keystore password.                  *
*****************  WARNING WARNING WARNING  *****************

Alias name: androiddebugkey
Creation date: Mar 3, 2019
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: C=US, O=Android, CN=Android Debug …
Run Code Online (Sandbox Code Playgroud)

android cmd keystore android-keystore

3
推荐指数
1
解决办法
2175
查看次数

如何替换已弃用的 KeyGenParameterSpec.Builder.setUserAuthenticationValidityDurationSeconds?

从 android 11 开始,setUserAuthenticationValidityDurationSeconds 已被弃用,取而代之的是 KeyGenParameterSpec.Builder 中的 setUserAuthenticationParameters,但接缝处对以前的版本有任何支持。

那么,最好的解决方案是什么?

KeyGenParameterSpec.Builder builder = new KeyGenParameterSpec.Builder(...)
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.R)
    builder.setUserAuthenticationParameters(timeout, KeyProperties.AUTH_DEVICE_CREDENTIAL | KeyProperties.AUTH_BIOMETRIC_STRONG);
else
    //noinspection deprecation
    builder.setUserAuthenticationValidityDurationSeconds(timeout);
Run Code Online (Sandbox Code Playgroud)

这个?

security android android-keystore android-biometric-prompt android-biometric

3
推荐指数
1
解决办法
2859
查看次数

React Native不会组装已签名的Android应用

我正在尝试为Android安装React Native应用.但经过签名步骤和运行后./gradlew assembleRelease,我app-release-unsigned.apkapk文件夹中只是一个孤独.没有错误.没有警告.

一切似乎都很好,除了没有输出.

这是我之前构建的应用程序,并且在Play商店中,因此我知道密钥库是有效的,并且签名是好的.我最近没有评论过原生的反应 - 到v0.40 - 所以一定要搞砸了.

有谁知道我可能会开始调试这个?

android code-signing android-keystore react-native

2
推荐指数
1
解决办法
1155
查看次数

制作已签名的APK时无法恢复密钥

我在制作签名的apk时遇到问题,一直说无法找回密钥。密钥库工作正常,它正在生成SHA密钥并显示密钥别名,当我输入错误的密码时,它将显示错误的验证码。制作新的密钥库时会生成签名的APK,但我想使用相同的密钥库在Google Play上更新我的应用。

我被卡在里面了,请帮助我。

java android android-keystore android-studio

2
推荐指数
1
解决办法
2039
查看次数