我从事电梯项目只是为了好玩,它实际上是硬件。但我认为这更像是一个软件问题。我不需要这个功能,事实上它完全是多余的,但我很好奇所以我还是添加了它以便我可以学习 :P
我有一个 8 位地址、8 位数据总线和一个 8 位加密代码。 我有一个主设备和许多从设备。 主机知道从机的地址并知道加密代码。 奴隶也知道他们的地址和加密代码。
我想要一个非常简单的算法:
主机发送“y” 其中,y = function(data,encryption code) 从机收到“y”,可以通过data = function2(y,encryption code)提取数据
我尝试使用 AND、XOR、OR 等......以及它们的组合,但无法弄清楚。
我再次寻找简单的算法。如果您不介意,您可以帮我一个更大的忙,并解释一些关于我如何得出这样的解决方案/功能的理论。
非常感谢!
最佳答案
您可以使用 XOR cipher非常简单:
E(x,key)=> y= x XOR key
D(y,key)=> x= y XOR key
非常简单!
您可以升级加密并使其成为密码 block 链接,这意味着例如您有一个数据 D,您需要将其分成 block ,比如说大小为 B 的 block 。对于你做的第一个 block :
E(b0,key)=> y0= b0 XOR key
结果将成为下一个区 block 加密的关键:
E(b1,y0)=> y1= b0 XOR y0 .... E(bn,yn-1)=> yn= bn XOR yn-1
原始数据为D={b0,b1.....bn}
和加密数据现在是E={y0,y1....yn}
要解密加密数据,您需要以相反的方式进行操作!就这样!
关于algorithm - 简单的加密算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16219239/