std::string可以用于openssl加密密钥吗?
Can std::string be used for openssl crypto keys?
在使用openssl时使用std::string
作为密钥是否安全?
我目前使用std::vector<uint8_t>
管理密钥用于openssl API,因为我不确定std::string
如何处理不可打印的字符。
幸运的是,除了一些像短字符串优化的东西,std::vector<char>
和std::string
之间没有太大的区别。
std::string
并不真正关心它所保存的内容,即使里面的字符不是有效的ASCII/UTF8字符/序列。
这是std::basic_string
中不好的事情之一,不幸的是在其他情况下。
std::string
对可打印/不可打印字符以及编码一无所知。例如,
std::string str;
for(int i = 0; i < 10; ++i){
str.push_back(' ');
}
是完全有效的字符串。
但是可能存在安全性问题。您需要保证所有具有加密密钥的内存在被释放时都应该填充一些东西(可能是零)。
相关文章:
- 错误:从 'char' 到 'const char' [-允许] strcat(加密,密钥[i])的转换无效;
- Microsoft加密 API 是否允许从字节流创建 ECDSA 密钥?
- 如何使用 AES 和 sha256 哈希作为密钥加密++进行加密
- 在加密++中使用RSA加密对称AES密钥
- 从内存导入密钥时加密++ BERDecode异常?
- 生成可以在PHP中加密的密钥,该密钥可以直接放置在C 代码中以进行解密
- 加密 和Python之间的Diffie-Hellman密钥交换
- 如何通过AES-256-CBC使用密码代替密钥和IV加密文件
- C++RSA使用XML密钥进行加密/解密
- 加密++中的PumpMessages,读取密钥文件
- C++使用密钥和掩码对字符进行加密
- OpenSSL:我使用存储外部文件的RSA密钥加密和解密文件,但有时我的程序会崩溃
- 如何接受字符串作为异或加密程序的密钥
- OpenSSL:RSA加密/解密,密钥生成和密钥持久性
- 将密钥和 iv 保存到文件 AES 实现加密++
- 如何在加密++库的AES中找到添加循环密钥和混合列代码
- 使用公钥的RSA加密.基于密钥的数据大小
- 加密++和压缩EC密钥
- OpenSSL:尝试使用通过握手获得的密钥材料来本地加密数据
- 三重DES加密需要多少个密钥?