pim*_*ing 7 c encryption openssl aes
作为参考和作为帖子的延续: 如何使用OpenSSL解密Java AES加密数据?
我有以下问题.
我正在使用OpenSSL库和C编程来加密aes-cbc-128中的数据.我得到任何输入二进制数据,我必须加密它.
我了解到Java有一个CipherParameters接口来设置IV和KeyParameters.
有没有办法使用openSSL生成IV和密钥?简而言之,如何在C程序中使用openSSL的随机生成器来实现这些目的.你们中的任何人都可以提供一些文档/示例/链接吗?
谢谢
Tho*_*nin 14
AES密钥和用于对称加密的IV只是一堆随机字节.因此任何加密强大的随机数发生器都可以解决这个问题.OpenSSL提供了(这本身就什么操作系统提供饲料,如这样的随机数生成器CryptGenRandom()在Windows或/dev/random和/dev/urandomLinux上).功能是RAND_bytes().所以代码看起来像这样:
#include <openssl/rand.h>
/* ... */
unsigned char key[16], iv[16];
if (!RAND_bytes(key, sizeof key)) {
/* OpenSSL reports a failure, act accordingly */
}
if (!RAND_bytes(iv, sizeof iv)) {
/* OpenSSL reports a failure, act accordingly */
}
Run Code Online (Sandbox Code Playgroud)
小智 2
假设 AES-128:
unsigned char key[16];
RAND_bytes(key, sizeof(key));
unsigned char iv[16];
RAND_bytes(iv, sizeof(iv));
Run Code Online (Sandbox Code Playgroud)
在使用其中之一之前,需要对随机生成器进行播种。
| 归档时间: |
|
| 查看次数: |
26144 次 |
| 最近记录: |