c语言实现AES加密解密算法,但是密钥如何生成

plauajoke 2014-01-07 02:50:54
c语言实现AES-128加密解密算法,但是密钥如何生成,使用户自己随机输入吗,
...全文
3411 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
u010599631 2014-01-14
  • 打赏
  • 举报
回复
下面的代码中,加密需要初始化向量iv,密钥可以是自己随便设置的128位,甚至少于128位都可以,比如我这里的key,可以是“0123456789012345”,所以
int aes_encrypt(char* in, char* key, char* out)//, int olen)可能会设置buf长度
{
    if(!in || !key || !out) return 0;
    unsigned char iv[AES_BLOCK_SIZE];//加密的初始化向量
    for(int i=0; i<AES_BLOCK_SIZE; ++i)//iv一般设置为全0,可以设置其他,但是加密解密要一样就行
    	iv[i]=0;
    AES_KEY aes;
    if(AES_set_encrypt_key((unsigned char*)key, 128, &aes) < 0)
    {
        return 0;
    }
    int len=strlen(in);
    AES_cbc_encrypt((unsigned char*)in, (unsigned char*)out, len, &aes, iv, AES_ENCRYPT);
    return 1;
}
shiter 2014-01-09
  • 打赏
  • 举报
回复
求代码啊,例子啊,学习看看
plauajoke 2014-01-08
  • 打赏
  • 举报
回复
ls 能不能给个具体的例子,十分感谢
nintendopsp1 2014-01-08
  • 打赏
  • 举报
回复
aes128加密的话,密钥是16字节,我之前是采用算md5码的方式,由于16字节,采用了128位md5算法来算密钥,向量也可以用该方法生成
vrace 2014-01-07
  • 打赏
  • 举报
回复
密匙可以由用户输入,然后做hash运算。 通常 aes-256 是将用户输入的密匙用 sha256 计算出 256 位的哈希值当密匙。aes-128类似。
oyljerry 2014-01-07
  • 打赏
  • 举报
回复
或者你自己生成密钥

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧