我正在学习ssl通信的基础知识,特别是AES加密。
我读了OpenSSL代码并看到一个指向userkey
的东西的指针。
int private_AES_set_encrypt_key( const unsigned char *userKey , const int bits , AES_KEY *key )
在文件" aes_core.c"
userkey
来自哪里?它是如何产生的?
我想知道不同版本AES的实际userkey
大小。
对于256位版本,256/8 = 32,292为128,16为16?我有点迷茫。
如果userkey
长度是可变的,那么我应该如何为符合长度要求的长度创建安全输入? (哈希?哪个?)
答案 0 :(得分:0)
userkey =安全的字节序列,128位= 16字节256 = 32字节192 = 24字节长,如果更容易理解,则排序密码。 密钥大小之间的差异很好地讨论了here。
是
密钥的长度对于算法是恒定的,并在'位中指定。参数(以位为单位!)
OpenSSL有两个AES API:first,您正在处理second EVP API。将EVP用于真正的非测试应用程序。