红包有偿请教。
vb吧
全部回复
仅看楼主
level 2
JT/T809-2011协议中的加密/解密是同一个算法,通过密钥进行加密解密。
b)在数据包发送之前,将数据包内容与伪随机序列按字节进行异或运算;
c) 加密算法如下:用 N 模伪随机序列发生器产生伪随机字节序列。将待传输的数据与伪随
机码(应该是密钥)按字节进行异或运算;
下面是协议给出的C例子,麻烦写成满足要求的VB例子,谢谢,QQ:123414664。
Const unsigned uint32_t M1 =A;
Const unsigned uint32_t IA1 =B;
Const unsigned uint32_t IC1 =C;
Void encrypt(uint32_t key, unsigned char* buffer, uint32_t size )
{
uint32_t idx = 0;
if( 0 = = key )
{
key = 1;
}
uint32_t mkey = M1;
if (0 = = mkey )
{
mkey = 1;
}
while( idx < size )
{
key = IA1 * ( key % mkey ) + IC1;
buffer[idx++] ^= (unsigned char)((key>>20)&0xFF);
}
}
2021年08月28日 03点08分 1
level 2
16进制的数据包密钥:04062EB9
16进制的数据包密文:CA1207C98E
通过上面的算法解出16进制的数据包明文:(16进制数据包显示哈)
2021年08月28日 03点08分 2
level 2
多发几个密钥和密文出来给大家测试
16进制的数据包密钥:01AD4956
16进制的数据包密文:5363809A57
16进制的数据包密钥:0362ABFC
16进制的数据包密文:C7A47286B2
2021年08月28日 03点08分 4
level 9
这个可以写成dll供VB调用吧
2021年08月30日 12点08分 7
1