假设我有一些数据和密码,我想以这样的方式加密数据,即只能使用正确的密码恢复.
这在技术上如何工作(即如何实现)?我经常听到人们使用bithifting进行加密,但是你如何根据密码进行加密?基于密码的加密如何工作?
一个例子是Mac OS X FileVault
谢谢.
如果您提供示例代码,最好是C,Objective-C或伪代码.
您需要查看其他资源以获得深入的解释,因为这个问题非常广泛.
一般来说:你使用密码作为加密密钥的"种子",正如sleske指出的那样.然后使用此密钥应用双向加密算法(即可以应用一次以加密并再次解密的算法).当您将算法应用于某个数据时,它会以这样的方式加密,即如果不使用相同的密钥,您再也无法将数据重新取出,并且如果没有相同的密码,您实际上无法生成相同的密钥.种子
一种简单但不完全安全的方法是将每个字节旋转由密码确定的数字。您可以使用字符串中的哈希码,或者计算字符数,或者其他任何数字。
不过,您可能想到的是公钥加密。这里有一个文档的链接,它会告诉你它的数学原理 - 你必须自己计算出实现细节,但一旦你理解了数学原理,它就不那么难了。 http://mathaware.org/mam/06/Kaliski.pdf