概念理解
mac算法是(Message Authentication Codes 消息认证码算法),是含有密钥散列函数算法。主要通过异或运算,再配合其他加密算法实现mac值的运算,用于校验。
实现过程
将需要加密计算的字符串转换为16进制字符串
例如:
密钥:"12345678901234567890123456789012"
待加密数据(字符串形式):
6000112018111411003020170930101010120171025000755000000005553
转化为16进制:
36303030 31313230 31383131 31343131 30303330 32303137 30393330 31303130 31303132 30313731 30323530 30303735 35303030 30303030 30353535 33
将转换过的16字符串进行补位分组
部位后的数据(部位规则:字符长度%32!=0补位)
36303030 31313230 31383131 31343131 30303330 32303137 30393330 31303130 31303132 30313731 30323530 30303735 35303030 30303030 30353535 33000000
分组后的数据
第 0组明文:36303030 31313230 31383131 31343131
第 1组明文:30303330 32303137 30393330 31303130
第 2组明文:31303132 30313731 30323530 30303735
第 3组明文:35303030 30303030 30353535 33000000
将分组过的字符串数组逐步进行异或运算
异或流程
第 0组明文: 36303030 31313230 31383131 31343131
第 1组明文: 30303330 32303137 30393330 31303130
第 1组异或结果:06000300 03010307 01010201 00040001
第 2组明文:31303132 30313731 30323530 30303735
第 2组异或结果:37303232 33303436 31333731 30343734
第3组明文:35303030 30303030 30353535 33000000
与第2组密文异或:02000202 03000406 01060204 03343734
将最后异或结果转化为16进制字符串
转换