如果您要手动指定密钥,则加密材料必须是随机的。对于 Solaris 系统,其加密材料的格式是十六进制的。其他操作系统可能需要 ASCII 加密材料。如果要为 Solaris 系统生成加密材料,而且此系统与需要 ASCII 的操作系统通信,请参见示例 23–1。
如果站点具有随机数生成器,请使用该生成器。否则,可以使用 od 命令,并将 /dev/random Solaris 设备作为输入。有关更多信息,请参见 od(1) 手册页。
在 Solaris 10 4/09 发行版中,您也可以使用 pktool 命令。该命令的语法比 od 命令的语法更为简单。有关详细信息,请参见《System Administration Guide: Security Services》中的“How to Generate a Symmetric Key by Using the pktool Command”。
生成十六进制格式的随机数。
% od -x|-X -A n file | head -n |
显示十六进制格式的八进制转储。十六进制格式对加密材料有用。十六进制以 4 个字符的块显示。
显示十六进制格式的八进制转储。十六进制以 8 个字符的块显示。
从显示中删除输入偏移基址。
作为随机数的源。
将显示限制在输出的前 n 行中。
合并输出以创建适当长度的密钥。
删除一行上的数字之间的空格,来创建 32 字符的密钥。一个 32 字符的密钥为 128 位。对于安全参数索引 (security parameter index, SPI),您应该使用 8 字符的密钥。密钥应该使用 0x 前缀。
以下示例显示两行八个十六进制字符为一组的密钥。
% od -X -A n /dev/random | head -2 d54d1536 4a3e0352 0faf93bd 24fd6cad 8ecc2670 f3447465 20db0b0c c83f5a4b |
通过合并第一行上的四个数字,可以创建一个 32 字符的密钥。以 0x 开头的 8 字符数提供了合适的 SPI 值,如 0xf3447465。
以下示例显示两行四个十六进制字符为一组的密钥。
% od -x -A n /dev/random | head -2 34ce 56b2 8b1b 3677 9231 42e9 80b0 c673 2f74 2817 8026 df68 12f4 905a db3d ef27 |
通过合并第一行上的八个数字,可以创建一个 32 字符的密钥。