标签: keystore

如何在Java中安全地存储加密密钥?

我有一个java属性对象,其中包含Web服务的身份验证信息.我需要加密这些数据,但我不知道在哪里需要存储加密密钥才能保持安全.

有关加密此数据并以安全方式检索数据的最佳做法是什么?

使用密钥库有什么好处吗?

ws_user=username
ws_password=password
ws_url=https://www.whatever.com/myservice
Run Code Online (Sandbox Code Playgroud)

java encryption keystore

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

检查java密钥库中的证书过期日期

我的java应用程序使用密钥库文件,其中我有一个证书,用于与活动目录服务器的ssl连接.我要做的是检查其到期日期并提示用户是否即将到期.我的申请开始时我必须这样做.我的想法是使用外部程序:keytool在密钥库中显示有关某些证书的信息,然后对keytool输出的字符串进行一些解析操作以查找此验证日期.

这是特定keytool命令的输出:

Owner:
Issuer: CN=CPD Root CA, DC=cpd, DC=local<br>
Serial number: 39e8d1610002000000cb
<br>Valid from: Wed Feb 22 21:36:31 CET 2012 until: Thu Feb 21 21:36:31 CET 2013
Certificate fingerprints: <br>
         MD5:  82:46:8B:DB:BC:5C:64:21:84:BB:68:E3:4B:D4:35:70<br>
         SHA1: 35:52:CA:F2:11:66:1E:50:63:BC:53:A5:50:C1:F0:1E:62:81:BC:3F<br>
         Signature algorithm name: SHA1withRSA
Run Code Online (Sandbox Code Playgroud)

问题在于解析日期,因为我无法确定它的显示格式.

有没有更简单的方法来检查java密钥库文件中包含的证书的到期日期?

java ssl certificate keystore

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

Intellij IDEA - 查看已保存的密码

我忘记了Android密钥库的密码,但它保存在Intellij IDEA密码管理器中.我知道主密码,因此IDEA能够自动完成密钥库密码,但我找不到从文本字段查看或复制/粘贴密码的方法.

是否有插件可以做到这一点,也许?

我还试图寻找一些日志或shell,因为我认为幕后IDEA正在使用keytoolSDK中的实用程序,所以也许我可以在命令行中找到密码.

我已经没想完了.请帮忙.

编辑:如果有人知道加密密码的保存位置,我可以备份该文件,并在将来使用相同主密码的IDEA安装中使用它.那会有用吗?

passwords android keystore intellij-idea

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

无法重新创建缺少的调试密钥库?

我是Android的编程新手,我只是尝试运行我的构建并获得此消息

Execution failed for task ':app:validateDebugSigning'.
> Unable to recreate missing debug keystore.
Run Code Online (Sandbox Code Playgroud)

这是什么意思?我正在使用Android Studio.

debugging android keystore recreate

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

从eclipse导入密钥库到android studio

我对这个主题进行了研究,但找不到解决方案:

我从eclipse项目创建了一个签名的apk,我也有eclipse密钥库.但是我无法在登录Android Studio时找到如何导入这个密钥库.这些是我已经尝试过的以下内容:

- 添加最初由Android Studio中的eclipse创建的密钥库路径

在将.jks扩展名添加到原始文件后添加Android Studio中的路径

在这两种情况下,错误是:

任务':application:packageRelease'的执行失败.

无法从密钥库中读取密钥

那么将eclipse密钥库添加到Android Studio的正确方法是什么?

任何建议都表示赞赏,因为我不知道出了什么问题.

eclipse migration android keystore

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

如何在卸载应用程序时删除App安装的可信CA证书

我有一个应用程序,提供安装CA证书的选项,它存储在可信凭据的用户选项卡中,它按预期工作.

仅供参考 (这是我安装证书的方式):

Intent installIntent = KeyChain.createInstallIntent();
javax.security.cert.X509Certificate x509 = javax.security.cert.X509Certificate.getInstance(caRootCertBytes);
installIntent.putExtra(KeyChain.EXTRA_CERTIFICATE, x509.getEncoded());
installIntent.putExtra(KeyChain.EXTRA_NAME,caRootCertName);
startActivity(installIntent);
Run Code Online (Sandbox Code Playgroud)

如果卸载了应用程序,则证书仍保留在受信任的凭据中.

我希望在卸载应用程序时卸载证书.

我想过使用deleteEntry方法删除证书KeyStore.

仅供参考 (我没有测试过.希望它能够正常工作......我测试后会更新)

javax.security.cert.X509Certificate x509 = javax.security.cert.X509Certificate.getInstance(caRootCertBytes);

KeyStore ks = KeyStore.getInstance("AndroidCAStore")
if (ks != null) 
                        {
                            ks.load(null, null);
                            Enumeration<String> aliases = ks.aliases();
                            while (aliases.hasMoreElements()) 
                            {
                                String alias = (String) aliases.nextElement();
                                java.security.cert.X509Certificate cert = (java.security.cert.X509Certificate) ks.getCertificate(alias);
                                String name = x509.getIssuerDN().getName();                             
                                if (cert.getIssuerDN().getName().contains(name)) 
                                {
                                  ks. deleteEntry(alias)

                                }
                            }
                        }  
Run Code Online (Sandbox Code Playgroud)

即使你考虑上面的代码工作AFAIK我无法注册广播接收器卸载我自己的应用程序.

在卸载我的应用程序时,如何删除我的应用程序安装的证书?

任何帮助表示赞赏!

java android uninstall keystore ssl-certificate

20
推荐指数
1
解决办法
1353
查看次数

密钥容器,足够安全存储私钥?

我正在阅读.NET中的密钥容器,作为存储非密钥加密和数字签名私钥的安全场所.

我的问题是密钥容器的安全性如何?因为我发现如果我知道密钥容器名称,那么我将能够使用以下内容检索私钥:

// Create the CspParameters object and set the key container 
// name used to store the RSA key pair.
CspParameters cp = new CspParameters();
cp.KeyContainerName = ContainerName;

// Create a new instance of RSACryptoServiceProvider that accesses
// the key container MyKeyContainerName.
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(cp);

// Display the key information to the console.
Console.WriteLine("Key retrieved from container : \n {0}", rsa.ToXmlString(true));
Run Code Online (Sandbox Code Playgroud)

密钥容器是否是存储私钥的安全位置?

.net cryptography keystore

19
推荐指数
1
解决办法
6542
查看次数

密钥库和别名 - 多个别名有用吗?

使用Eclipse导出已签名的Android应用程序时,是否有使用多个别名的目的?

根据有关签名官方指南,建议您使用相同的证书对所有应用程序进行签名,以允许您的应用程序共享数据,代码并以模块化方式进行更新.

假设"别名","密钥"和"证书"在这种情况下基本上是可以互换的,是否有人想要为所有应用程序使用不同的别名?我能想到的唯一原因是它为您的应用程序增加了更多的安全性,因为受损的密钥/密码不会危及所有内容.还有其他原因吗?

此外,生成的密钥是否依赖于别名的名称?换句话说,如果更改别名但不更改密码,生成的证书是否会有所不同?

eclipse android keystore google-play

19
推荐指数
2
解决办法
2万
查看次数

查找Android密钥库的到期日期

我刚刚为我的Android应用程序创建了一个密钥库,但我记不清我设置有效期的时间.

有没有办法找出密钥库有多长时间?

android keystore

19
推荐指数
2
解决办法
9773
查看次数

我在使用keytool获取SHA1证书时遇到问题

我正在尝试使用以下命令在macos sierra上找到我的签名密钥库的SHA1哈希:

keytool -exportcert -alias androiddebugkey -keystore $HOME/.android/debug.keystore -list -v -storepass android
Run Code Online (Sandbox Code Playgroud)

结果如下所示:

别名:androiddebugkey
创建日期:2017年10月25日
输入类型:PrivateKeyEntry
证书链长度:1
证书[1]:
keytool错误:java.util.IllegalFormatConversionException:d!= java.lang.String java.util. IllegalFormatConversionException:d!= Java.lang.String at java.base/java.util.Formatter $ FormatSpecifier.failConversion(Formatter.java:4331)at java.base/java.util.Formatter $ FormatSpecifier.printInteger(Formatter.java: 2846)at java.base/java.util.Formatter $ FormatSpecifier.print(Formatter.java:2800)at java.base/java.util.Formatter.format(Formatter.java:2581)at java.base/java.util .Formatter.format(Formatter.java:2517)位于java.base/java.lang.String.format(String.java:2747)java.base/sun.security.tools.keytool.Main.withWeak(Main.java) :3151)在java.base/sun.security.tools.keytool.Main.printX509Cert(Main.java:3182)的java.base/sun.security.tools.keytool.Main.doPrintEntry(Main.java:1995)at at java.base/sun.security.tools.keytool.Main.doCommands(Main.java:1212)在java.base/sun.security.tools.keytool.Main.run(Main.java:397)java.base/sun.security.tools.keytool.Main.main(Main.java:390)

据我所知,该命令正在运行,它不是文件的问题,也不是密码,在我看来java中的一个内部错误,它是否缺少一些java包?我正在使用Java SDK 9.0.1

java android certificate keystore keytool

19
推荐指数
1
解决办法
9796
查看次数