5.8.3 密钥存储

在计算机的世界里,密钥就是一段二进制的数据。我们可以通过Key接口的getEncoded()方法获得密钥对应的字节数组(详见3.2.6节)。

密钥的二进制表现形式使得它的安全性大为提升,但却大大降低了它的可读性。通常我们希望密钥可以有一个容易理解的表现形式(如经过Base64编码后的字符串),以增强它的可读性并且方便密钥的发放。如甲方向乙方发送密钥,可以将密钥以二进制形式转化为Base64编码后的字符串形式,通过安全途径以文档形式发放给乙方,密钥很可能被要求写在合同中。

Base64算法的优势恰恰是在基于二进制编码格式的转换上,这一点使得二进制的密钥通常以Base64编码的形式展现。另一种类似的效果是将二进制串转为十六进制串,如消息摘要结果。

以下是一个经过Base64编码处理后DES的密钥:

I6ttW0mtSo8=

这样处理后的密钥看起来就比较容易接受,可以将其放到合同书中,发放给合作伙伴!

我们将在本书的后续内容中多次看到上述Base64编码形式的密钥。