首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >java密钥库和密码设置

java密钥库和密码设置
EN

Stack Overflow用户
提问于 2011-02-07 20:39:09
回答 1查看 8K关注 0票数 8

我有一个关于java密钥库和keytool的问题。我假设一个密钥库可能有1个以上的证书。正如我已经尝试过的,通过keytool我可以创建一个密钥库,要访问这个密钥库,我必须设置一个密码。此外,要访问每个证书条目,我必须设置密码。密钥库和条目是否必须具有相同的密码?如果不是(我认为假设是合理的),为什么是下面的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
char[] pwd = new char[]{'s','e','c','r','e','t'};
KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
ks.load(new FileInputStream("myPersonal.keystore"), pwd);
kmf.init(ks, pwd);//fails here with exception

给了我下面的异常?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Exception in thread "main" java.security.UnrecoverableKeyException: Cannot recover key
    at sun.security.provider.KeyProtector.recover(Unknown Source)
    at sun.security.provider.JavaKeyStore.engineGetKey(Unknown Source)
    at sun.security.provider.JavaKeyStore$JKS.engineGetKey(Unknown Source)
    at java.security.KeyStore.getKey(Unknown Source)

secret是访问我通过密钥工具创建的密钥库myPersonal.keystore的密码。其中有2个条目,对于证书,1个DSA和1个RSA。每个密钥库都有不同的密码(以及彼此)。现在代码是正确的,因为如果我使用具有与密钥库相同的密码的单个证书条目的密钥库,则没有异常,并且程序运行良好。

那么这里的问题是什么呢?我不应该有不同的密码?我不应该有很多证书?不然呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-07 23:46:51

正如API所指定的,KeyManagerFactory.init方法接受用于从密钥库中检索密钥的密码。因为只有一个password参数,所以它期望所有密钥的密码是相同的。如果其中一个密钥使用了不同的密码,那么您将看到错误,因为该特定密钥库条目的密码不正确。

对于您来说,最简单的解决方案是对keystore中的所有条目使用相同的密码。如果您设置为每个条目维护不同的密码,那么您可能需要考虑构建您自己的自定义安全元素,例如KeyManager。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4926290

复制
相关文章
关于TF(词频) 和TF-IDF(词频-逆向文件频率 )的理解
TF(词频):  假定存在一份有N个词的文件A,其中‘明星‘这个词出现的次数为T。那么 TF = T/N; 所以表示为: 某一个词在某一个文件中出现的频率. TF-IDF(词频-逆向文件频率):  表示的词频和逆向文件频率的乘积. 比如:  假定存在一份有N个词的文件A,其中‘明星‘这个词出现的次数为T。那么 TF = T/N;  并且‘明星’这个词,在W份文件中出现,而总共有X份文件,那么 IDF = log(X/W) ; 而: TF-IDF =  TF *  IDF = T/N * log(X/W); 
Gxjun
2018/04/11
1.6K0
Linux 中复制文件到多个目录中
在学习 Linux 的过程中,对于新手而言总是会使用几个命令来完成一个简单的任务。对正在熟悉使用终端的人这是很容易理解的行为。然而,如果你想要成为一个老手,学习一些“快捷命令”会显著减少时间浪费。
小小工匠
2021/08/16
5.4K0
Python读取文件后进行词频统计
Jieba库分词原理是利用一个中文词库,将待分词内容与分词词库进行比对,通过图结构和动态规划方法找到最大概率的词组。除了分词,jieba库还提供增加自定义中文单词的功能。
算法与编程之美
2021/12/01
2.9K0
Python读取文件后进行词频统计
MySQL允许在唯一索引字段中添加多个NULL值
我们可以看出,此约束不适用于除BDB存储引擎之外的空值。对于其他引擎,唯一索引允许包含空值的列有多个空值。
Java那些事儿
2020/07/21
10K0
MySQL允许在唯一索引字段中添加多个NULL值
MapReduce实战-词频统计、文件合并排序
hadoop伪分布式集群环境,包括设置JAVA_HOME、HADOOP_HOME等。 可参考使用docker部署hadoop集群-手把手复现
唔仄lo咚锵
2021/12/31
7110
MapReduce实战-词频统计、文件合并排序
使用SharpZipLib压缩打包多个内存中的文件
SharpZipLib是C#写的开源压缩解压缩组件,最近项目上遇到一个需求:根据用户选择的项目生成CSV文件并下载,后来改为同时生成2个CSV文件下载下来。想到的解决办法就是将2个CSV文件打包成一个Zip文件,然后供用户下载。
深蓝studyzy
2022/06/16
2.3K0
vim打开多个文件、同时显示多个文件、在文件之间切换 打开多个文件:
1.vim还没有启动的时候: 在终端里输入 vim file1 file2 ... filen便可以打开所有想要打开的文件 2.vim已经启动 输入 :open file 可以再打开一个文件,并且此时vim里会显示出file文件的内容。
sunsky
2020/08/19
15.4K0
spark读取多个文件夹(嵌套)下的多个文件
在正常调用过程中,难免需要对多个文件夹下的多个文件进行读取,然而之前只是明确了spark具备读取多个文件的能力。
sparkexpert
2022/05/07
3.2K0
Axure RP9 多个按钮唯一选中
屏幕快照 2019-06-04 15.20.01.png 要实现上图的效果首先在画布中拖入一个矩形,然后在矩形上拖入一个按钮,新建交互 屏幕快照 2019-06-04 15.21.30.png 选择->单击时 屏幕快照 2019-06-04 15.22.14.png 选择->设置选中 屏幕快照 2019-06-04 15.23.10.png 选择对应的元件 屏幕快照 2019-06-04 15.24.19.png 然后选择->选中 屏幕快照 2019-06-04 15.25.49.png
赵哥窟
2019/06/11
3.5K0
Axure RP9 多个按钮唯一选中
python文件操作案例之统计词频
  Python 是一门易于学习、功能强大的编程语言。它提供了高效的高级数据结构,还能简单有效地面向对象编程。Python 优雅的语法和动态类型以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的理想语言。下面我们来介绍一下python的文件统计词频相关知识。
jiankang666
2022/12/05
4750
python文件操作案例之统计词频
在MapReduce中利用MultipleOutputs输出多个文件
用户在使用Mapreduce时默认以part-*命名,MultipleOutputs可以将不同的键值对输出到用户自定义的不同的文件中。
星哥玩云
2022/07/03
2.1K0
在MapReduce中利用MultipleOutputs输出多个文件
Linux对文件中的特殊字符进行替换(单个文件与多个文件替换)
https://stackoverflow.com/questions/5800035/how-to-replace-nul-in-vi
小徐
2019/08/05
6.2K0
Linux对文件中的特殊字符进行替换(单个文件与多个文件替换)
Django中配置多个setting.py文件
项目在开发环境和实际的生产环境中,settings.py配置文件通常是不一样的,而且按照以往的开发经验来看,项目开发完成后settings.py通常存放着一些用户名与密码,所以需要对这些隐私配置项进行单独的配置。
Hsinyan
2022/06/19
7620
Django中配置多个setting.py文件
Centos8中如何更改文件夹中多个文件的扩展名
在目录中递归更改文件扩展名的最常见方法是使用 shell 的 for 循环。我们可以使用 shell 脚本提示用户输入目标目录、旧的扩展名和新的扩展名以进行重命名。以下是脚本内容:
用户7639835
2021/09/01
3.7K0
Centos8中如何更改文件夹中多个文件的扩展名
在目录中递归更改文件扩展名的最常见方法是使用 shell 的 for 循环。我们可以使用 shell  提示用户输入目标目录、旧的扩展名和新的扩展名以进行重命名。以下是 内容:
用户1685462
2021/09/05
3.3K0
Centos8中如何更改文件夹中多个文件的扩展名
在目录中递归更改文件扩展名的最常见方法是使用 shell 的 for 循环。我们可以使用 shell 脚本提示用户输入目标目录、旧的扩展名和新的扩展名以进行重命名。以下是脚本内容:
用户9236362
2021/11/30
4K0
linux命令行中替换多个文件中的字符串
将当前目录下所有文件中的tmp替换成rumenz sed > sed -i 's/tmp/rumenz/g' * 替换前备份 > sed -i '.bak' 's/tmp/rumenz/g' * find > find ./ -type f -exec sed -i 's/tmp/rumenz/g' {} \; 不区分大小写 > find ./ -type f -exec sed -i 's/tmp/rumenz/gI' {} \; grep sed > grep -rl tmp ./ | xarg
入门笔记
2022/06/02
4.2K0
Oracle中唯一约束和唯一索引的区别
在使用TOAD来操作Oracle数据库时,会注意到创建约束时有Primary Key、Check、Unique和Foreign Key四种类型的约束,这与SQL Server中的约束没有什么区别,这里的Check约束除了用于一般的Check约束外,在Oracle中也用于非空约束的实现。也就是说如果一个字段不允许为空,则系统将会创建一个系统的Check约束,该约束定了某字段不能为空。
深蓝studyzy
2022/06/16
1.3K0
Oracle中唯一约束和唯一索引的区别
linux中重命名多个文件的命令行工具
Linux带有一个非常强大的内置工具,称为rename.这rename命令用于重命名多个或一组文件,将文件重命名为小写,将文件重命名为大写以及使用 perl 表达式覆盖文件。 这 rename 命令是Perl脚本,它驻留在/usr/bin/在许多Linux发行版上。你可以运行which命令找出重命名命令的位置。 $ which rename /usr/bin/rename 重命名命令的基本语法 rename 's/old-name/new-name/' files 重命名命令带有几个可选参数以及强制性p
入门笔记
2022/06/02
3.1K0
点击加载更多

相似问题

统计多个文件中的词频

21

计算多个文件中的词频

10

多个文件的词频计算

10

统计多个文档中的词频

20

使用NLTK的唯一词频

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文