【发布时间】:2011-01-27 09:19:14
【问题描述】:
我正在编写一个 Java 应用程序,它可以“加密”并因此“解密”任何二进制文件。
我只是“密码学”领域的初学者,所以我想写一个非常简单的应用程序作为开始。
为了读取原始文件,我可能会使用java.io.FileInputStream 类来获取文件的“字节数组”byte originalBytes[]。
然后我可能会使用一些非常简单的密码,例如“将每个字节上移 1”,然后我会得到“加密”字节 byte encryptedBytes[],假设我也会为它设置一个“密码”,例如“123456789”。
接下来,当有人想“解密”该文件时,他必须先输入密码(“123456789”),然后才能解密文件(因此“每个字节下移 1") 并因此通过java.io.FileOutputStream 保存到输出文件。
我只是想知道如何将密码信息“存储”到加密文件中,以便解密应用程序知道输入的密码和“真实”密码是否相等?
将密码(例如密码字母的 ASCII 序号)添加到文件的开头(在加密数据之前)可能会很愚蠢。
所以我的主要问题是如何将密码信息存储到加密文件中?
【问题讨论】:
标签: java encryption passwords