AES-128-CBC加密算法,密钥长度究竟是128位还是16位?

yaycici 2018-07-26 05:34:27
从定义来看,密钥长度应该是128位哈,但是为啥我试的在线des的加解密工具,输入密钥长度提示最多16位呢??

从网上下的别人的代码是这样滴:
uint8_t iv[] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f };//向量,16字节
uint8_t in[] = { 0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96, 0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a,
0xae, 0x2d, 0x8a, 0x57, 0x1e, 0x03, 0xac, 0x9c, 0x9e, 0xb7, 0x6f, 0xac, 0x45, 0xaf, 0x8e, 0x51,
0x30, 0xc8, 0x1c, 0x46, 0xa3, 0x5c, 0xe4, 0x11, 0xe5, 0xfb, 0xc1, 0x19, 0x1a, 0x0a, 0x52, 0xef,
0xf6, 0x9f, 0x24, 0x45, 0xdf, 0x4f, 0x9b, 0x17, 0xad, 0x2b, 0x41, 0x7b, 0xe6, 0x6c, 0x37, 0x10 };//原文,64字节
uint8_t key[] = { 0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6, 0xab, 0xf7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c };//密钥,16字节
其中uint8_t就是unsigned char类型,key长度就是16字节呀!(但是printf出的key=2b7e151628aed2a6abf7158809cf4f3c,这长度不是32字节了么?这是问题一)
将原文加密后,输出结果是:
7649abac8119b246cee98e9b12e9197d
5086cb9b507219ee95db113a917678b2
73bed6b8e3c1743b7116e69e22229516
3ff1caa1681fac09120eca307586e1a7
但是我在网上找的在线des加密工具把对应的信息输入进去后,显示是这样的:

问题二:为啥密文变这么长了?不应该也是64字节么?

迷茫中,请各位帮忙解答一下,谢谢啦!
...全文
5867 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
IAMsuyuhui 2018-12-11
  • 打赏
  • 举报
回复
好像所有AES在线加密算出来的结果都不一样 你这个应该只认128位的密钥
BomBer119 2018-08-08
  • 打赏
  • 举报
回复 1
1 Byte = 8 bit
16字节 = 128位
0x开头的是16进制的整数,0x2b 换成10进制是43,0x2b对应ASCII码表查的字符是+,你直接printf是什么鬼?

249

社区成员

发帖
与我相关
我的任务
社区描述
其他产品/厂家
社区管理员
  • 其他
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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