社区
ATL
帖子详情
AES 密钥长度的问题
qq1902
2009-03-05 03:32:13
小弟现在用MFC做一个磁盘文件加密的程序,里面用到AES算法,查资料的过程中,发现密钥的长度为128,192,256,那么是不是在采用AES—128算法的时候,密码的长度智能设置成16字节?我感觉应该不是这样,但是又不明白。哪位大侠可以指导一下
...全文
2016
2
打赏
收藏
AES 密钥长度的问题
小弟现在用MFC做一个磁盘文件加密的程序,里面用到AES算法,查资料的过程中,发现密钥的长度为128,192,256,那么是不是在采用AES—128算法的时候,密码的长度智能设置成16字节?我感觉应该不是这样,但是又不明白。哪位大侠可以指导一下
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
liweiwei0808
2009-03-22
打赏
举报
回复
密钥必须是16或24或者32位的,明文必须是16或24或32的整备数。对称加密都有这个限制,流加密没有这个限制。
cyg858644
2009-03-21
打赏
举报
回复
是的,必须是16字节.
具体为什么,那就不清楚了,
只是会用.
为安全,我当时用的是256.
但每次都要客户输入32个字符又太长了,
我的作法 是系统内部保存一个26字节的常用密码,
要求客户最少输入6位,再加入系统保存的,碰够32位再加密.
aes
对称加密示例,CBC模式,192
密钥
实现
aes
对称加密字符串,支持CBC,FCB,ECB模式,
密钥
长度
支持128,192,256位,例子实现了PKCS7填充模式
AES
加密算法源代码20091025 (C++版)
AES
类的三个公共函数 //设置
AES
类的模式为加密还是解密,并说明
密钥
长度
和明文
长度
(解密时为密文) //key
密钥
数据 //keySize
密钥
长度
//inSize 明文
长度
(解密时为密文) //isdecrypt 是否为解密(解密时为TRUE) //成功返回1 失败返回-1 失败是由于参数设置不正确引起 int setMode(unsigned char* key, int keySize, int inSize, bool isdecrypt); //加密数据 //input 明文数据,
长度
为setMode时inSize指定 //ouput 加密后的数据,
长度
为setMode时inSize指定 void cipher (const unsigned char* input, unsigned char* output); //解密数据 //input 密文数据,
长度
为setMode时inSize指定 //output 明文数据,
长度
为setMode时inSize指定 void invCipher(const unsigned char* input, unsigned char* output); //例子 #include "
aes
.h" #include void main() { char* str = "0123456789abcdef"; //被加密的数据16字节 char* pwd = "1111111111111111"; //密码16字节 char out[17]; //输出缓存 out[16]='\0';
AES
aes
; /*加密时*/
aes
.setMode(pwd, 16, 16, FALSE);
aes
.cipher(str, out); printf(out); //输出加密数据 printf("\n"); /*解密时*/
aes
.setMode(pwd, 16, 16, TRUE);
aes
.invCipher(out, out); printf(out); } 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/scofield_zhang/archive/2008/07/21/2687037.aspx
Delphi与JAVA互加解密
AES
算法
本组代码采用标准
AES
算法(基础算法引用El
AES
.pas,感谢作者),代码支持
AES
/ECB/PKCS5Padding、
AES
/CBC/PKCS5Padding
密钥
长度
128/192/256bit,
密钥
0填充,Delphi与JAVA互相加解密。
AES
密钥
各种
长度
function keygen($length) { $token = ''; $tokenlength = round($length * 4 / 3); for ($i = 0; $i < $tokenlength; ++$i) { $token .= chr(rand(32, 1024)); } $token = base64_encode(str_shuffle($token)); return substr($token, 0.
java
AES
密钥
长度
限制
问题
解决方案
默认JDK中的加密库对
密钥
长度
限制在128位以下,所以无法使用128位以上的
密钥
. 如果需要在
AES
中使用128位以上
密钥
加密时,必须下载扩展的加密库包。 贴个地址:http://blog.csdn.net/shangpusp/article/details/7416603
ATL
3,245
社区成员
48,537
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章