加密安全...
SECRET_256_HEX=$(openssl rand -hex 32)
SECRET_256_BIN=$(bc <<< "ibase=16; obase=2; ${SECRET_256_HEX^^}" | perl -pe 's/(\\)?\n//g')
echo -n $SECRET_256_BIN | wc -c
我想知道同样的事情,然后我突然意识到可以采用任何明文秘密 - 字面上的任何东西 - 并使用基于 - 的校验和结果......
SECRET_PLAINTEXT='You have a deep, dark fear of spiders, circa 1990'
#or alternatively ;p
#SECRET_PLAINTEXT='You have a deep, dark fear of clowns, circa 1990'
SECRET_256_HEX=$(echo -n $SECRET_PLAINTEXT| sha256sum | cut -d\ -f1)
SECRET_256_BIN=$(bc <<< "ibase=16; obase=2; ${SECRET_256_HEX^^}" | perl -pe 's/(\\)?\n//g')
echo -n $SECRET_256_BIN | wc -c
最后一位只是为了证明它是256位;使用
$SECRET_256_HEX
值,顺便说一句,该值已准备好网络安全(无需 base64
)
密钥必须使用 CSPRNG 生成:https://www.rfc-editor.org/rfc/rfc7515#section-10.1
以下示例展示了如何在 C# 中生成 is: 如何在 C# 中生成加密安全的伪随机数?