![]() |
1
6
Sun的默认JKS密钥库使用了一种专有的算法,主要是绕过对标准算法的导出限制。算法在这个类中实现,
是对算法的描述, 这是一个Sun专有的可导出算法的实现,用于保护(或恢复)敏感密钥的明文版本。此算法不是通用密码。这就是该算法用于密钥保护的方式:p-用户密码s-随机salt x-xor密钥p-要受保护的密钥y-受保护的密钥r-存储在密钥库中的内容步骤1:获取用户密码,向其添加随机salt(固定大小),并将其散列:d1=摘要(p,s)将d1存储在x中。步骤2:获取用户密码,附加dig上一步的EST结果,并散列它:dn=digest(p,dn-1)。将dn存储在x中(将其附加到以前存储的摘要中)。重复此步骤,直到x的长度与私钥p的长度匹配。步骤3:xor x和p,并将结果存储在y:y=x xor p中。步骤4:将s、y和digest(p,p)存储在结果缓冲区r:r=s+y+digest(p,p)中,其中“+”表示连接。(注意:摘要(P,P)存储在结果缓冲区中,以便在恢复密钥时,我们可以检查恢复的密钥是否确实与原始密钥匹配。)R存储在密钥库中。受保护的密钥恢复如下:步骤1和步骤2与上述相同,只是salt不是随机生成的,而是从步骤4的结果r(第一个长度(s)字节)中提取的。步骤3(XOR操作)生成纯文本键。然后将密码与恢复的密钥连接起来,并与r的最后一个长度(摘要(p,p))字节进行比较。如果匹配,则恢复的密钥实际上与原始密钥相同。 |
![]() |
2
2
所使用的算法取决于所使用的密钥库(例如,它可能是智能卡)。 Sun随JDK一起提供的默认密钥存储库创建软令牌(磁盘文件上) three encryption options :
在这三种情况下,您都对私有数据进行了加密(对称地,使用单独的密码),并且整个密钥存储的完整性受到加密摘要(使用密钥存储密码)的保护。 |
|
user29759326 · 如何返回递归函数中的最后一个值? 6 月前 |
|
malife89 · 将java中的字符串读取为正确的日期格式 6 月前 |
![]() |
Tim · 在java中,有没有更快的方法将字节数组写入文件? 6 月前 |
![]() |
rudraraj · java中未声明最终变量 7 月前 |
![]() |
Bala Ji · 以下BFS的实施效率如何? 7 月前 |