C语言(粗俗的加密)
2016-03-30 09:34
246 查看
位异或运算居然可以用来加密!虽然办法粗俗了一点,但确确实实挡住了几个盗刷芯片数据的奸商。
拓展:
位逻辑异或运算符(^)对两个操作数的相应位进行异或运算,所谓的异或就是相同为0不同为1,比如:
char a = 0xB4, b = 0x6D;
char c = a^b;
则变量c的值为0xD9。位逻辑或运算规则与逻辑或运算相同,运算细节如下:
仔细观察一下会发现,如果让c再去抑或b,结果会是这样:
这个逻辑是这样的:
b相当于一个密钥,将原始数据a抑或成c,c就是加密之后的数据,将此数据存放到flash芯片,将密钥b存放到不可复制的特殊加密芯片,系统运行时,将数据c异或b之后,给CPU运行:
这种粗俗的做法,可以将一些想要复制flash芯片数据的无良奸商挡在门外,因为b存放的是无法复制的特殊加密芯片。以前我们在东莞生产老虎机(嘘!违法的!)的时候就是介么干的!
相关文章推荐
- 广度优先搜索BFS(迷宫问题)
- Python和C++编写block
- 如何利用Emacs来调试C++程序
- C++实现矩阵类型的基本操作:创建矩阵(M x N)、释放内存、获取某一元素的值、修改某一元素的值、乘法操作
- 深度优先搜索DFS(迷宫问题)
- 【poj 1276】Cash Machine 题意&题解&代码(C++)
- 【poj 1837】Balance 题意&题解&代码(C++)
- 《C++》15 C++ 命名空间
- 《C++》14 C++ 类数据抽象
- 《C++》13 C++ 多态
- 堆和栈的区别(转载)
- ISBN号码
- 实验:C++实验2-【项目1】标准体重
- C++:由输出推断继承关系
- c++引用深入分析
- 将数组a中的n个整数按相反顺序存放
- 如何产生一个不重复的随机数
- 【C/C++】计算两个整数的最大公约数和最小公倍数
- Effective C++: 模板类型推断.
- Effective C++: auto类型推断.