可以为数字实现一个时间密码吗?如果是,您能告诉我相同的算法或工作代码(最好是Java)吗?
而且,一次密码和异或密码之间有什么区别。
答案 0 :(得分:0)
当(且仅当)以下假设成立时,OTP和您所描述的xor密码相同:
这些都是很繁琐的假设
例如,如果您想加密DVD,则密钥也将与一个DVD一样大,必须将其安全地传输给接收者,而且密钥DVD只能用于此单个数据交换,并且可能永远不会重复使用
您可能不能简单地通过使用随机类来创建随机位... OTP要求真正的随机性...没有伪随机数生成器...甚至没有加密安全的生成器... OTP定义要求真正的随机性值...为什么连CSPRNG都不?因为OTP的强度是坚不可摧的...只要您依赖的不是真正的随机来源,总的加密强度就会从无穷降低到CSPRNG的加密强度...这可能是一种加密强度,相当好,但是很有限...可能会破坏它...对于真正的OTP,已经证明即使有无限资源,该系统从信息论的角度来看也是不可破坏的,这很了不起,因为它是具有此属性的唯一已知密码系统
对于我们通常的日常密码应用程序来说,OTP通常是不可行的,并且通常仅在您处理特殊情况时才使用,例如间谍与他/她工作的秘密机构之间的通信...
算法本身是众所周知的...
具有一个适用于以上所有假设的键
明文按位异或
完成