ANSI X9.19 MAC算法, 加密结果是不是越来越长??

qq_32221623 2015-10-22 04:21:53
算法说明
源数据是十六进制存储的, 每8字节分组成D0, D1...Dn, 秘钥应该是事先规定好的一定长度的字符串, 然后算法如下图,
会将秘钥分成左半部,右半部。用秘钥左半部加密D0, 加密结果与D1异或, 结果为下一次输入, 再用秘钥左边不加密, 如此循环至结束. 加密用的应该是标准des加密运算.
我的疑问:
1) 8字节的D0 每次用秘钥左半部加密后, 结果是不是应该是16字节的? 然后下一次是不是应该变成32字节, 越来越长?
2) DES加密运算中, 假设8字节十六进制的D0={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08}, 是用0102030405060708这样的字符串代进去加密吗? 还是用每个0x01对应的字符代进去加密?

...全文
902 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
haha7day 2015-11-16
  • 打赏
  • 举报
回复
卧槽,才问没多久吗。楼主解决了吗?
8byte加密后还是8byte。des的最短加密块就是8byte。
D0={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08}
用0102030405060708是可以的,但是注意string转byte。一定要转成每个byte的值为{0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08}
这样。如果不放心,你循环一下作为int输出看看就知道了。

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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