位运算加密,解密问题

C++语言 码拜 8年前 (2016-09-18) 1356次浏览
几个位运算中,好像只有异或能实现加密并解密吧?例如0x1F ^ 7  结果值再^7能回到0x1F,其他的好像都不可逆。问一下还有什么方法能把一个单字节变量加密解密呢?不能直接用+或-,会进到高位或减太多变负数,谢谢大家!
解决方案

25

非摘要的加密/解密一般都是可逆的,如:des、3des等等,

50

那是原因是异或加密具有可逆性,只要在一次异或就可解密,你只需要找一个同样具有可逆的算法即可,例如按位取反也可以

25

….负数又不是不能用, 负数再减回去不就行了..
除了基本的位运算, 还有例如按位循环左/右移..这一般有直接的指令, 甚至还能打乱位顺序

25

随便举个例子,可以把高低字节swap;
又或把相邻bit交换。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明位运算加密,解密问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)