我必须在C程序中解密加密的消息,该消息已在CBC模式下使用3DESm方法加密。它看起来与我们从3DES方法获得的加密消息完全不同。通常,加密后得到的密文是十六进制数,长度为16,只包含0-9和A-F等字符。但是我需要解密的密文长度超过20个字符,包括A-Z,a-z,0-9中的所有字符,还包括一些特殊字符,如'+'和'='。 哪个库有助于满足需要?
答案 0 :(得分:1)
从任何普通块码获得的密文由原始字节/二进制数据组成,而不是十六进制。在DES的情况下,每个块是8个字节。
如果您喜欢文本而不是二进制数据,则可以对它们进行编码。看起来您的密文是Base64而不是十六进制编码。但这是一种独立于密码选择的选择。
Base64使用所有ASCII字母和数字以及+
和/
来编码数据,如果输入不是6位的倍数,则使用=
作为填充。< / p>