首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java Keystore密码毫无意义?

Java Keystore密码毫无意义?
EN

Stack Overflow用户
提问于 2012-08-22 20:57:50
回答 3查看 6.5K关注 0票数 18

密钥库密码背后到底是什么意思,比如JKS/BKS密钥库?

这显然不是出于安全考虑,因为我可以使用编辑器打开文件,并将所有条目复制到新文件中,而无需进行密码检查。受密码保护的密钥库中的数据未加密!

这个密码保护的是什么?它似乎只适用于开发人员oO……

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-07-06 00:04:25

在JKS或BKS密钥库上,密码并不是毫无意义的,但它也不会像您想象的那样工作。

它不会加密密钥库中的数据,也不会以任何方式阻止对它的访问,但它会验证密钥库的完整性。如果不知道密码,就不可能在普通用户未发现的情况下更改密钥库(通常是因为他们的工具告诉他们“密钥库被篡改了,或者密码不正确”)。

在其他一些密钥库类型(如Keystore.BouncyCastle)中,密钥库密码可以防止检查和篡改。

票数 4
EN

Stack Overflow用户

发布于 2012-08-22 21:07:18

假设您在密钥库中保存了一个名为"this is my句子“的字符串,当您通过记事本打开它时,您看到密文"blabla",您将"blabla”复制到另一个文件并声称您找到了纯文本,它是"blabla",这显然是不正确的,在通过密码恢复它之前,您仍然不知道原始的pliant ext。

==EDIT==

对于JKS密钥库,密钥库密码用于验证完整性,src

代码语言:javascript
复制
636   if (password != null) {
637       md = getPreKeyedHash(password);
638       dis = new DataInputStream(new DigestInputStream(stream, md));
639   }

DigestInputStream生成签名并将其与实际签名进行比较以查看是否被修改。

BouncyCastle密钥库UBER更安全,整个密钥库使用基于SHA1和Twofish的PBE (PBEWithSHAAndTwofish-CBC)进行加密

代码语言:javascript
复制
        Cipher cipher = this.makePBECipher(cipherAlg, Cipher.DECRYPT_MODE, password, salt, iterationCount);
        CipherInputStream cIn = new CipherInputStream(dIn, cipher);

        Digest dig = new SHA1Digest();
        DigestInputStream  dgIn = new DigestInputStream(cIn, dig);

        this.loadStore(dgIn);
票数 8
EN

Stack Overflow用户

发布于 2012-08-22 21:30:31

JKS密钥库是二进制存储,其内容使用密码作为密钥进行加密。没有密码任何人都不能访问内容。密码用于保护存储内容不被非法访问和操纵。您肯定可以在某个编辑器中打开加密的内容,但无法从中获得任何意义。

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

https://stackoverflow.com/questions/12073702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档