【发布时间】:2011-12-07 10:42:20
【问题描述】:
我正在制作一个简单的程序,它接受在文本框中输入的文本,并接受另一个文本框中的密码,然后对其进行某种简单的加密并将其保存到文件中。之后,用户应该能够再次打开文件并提供用于加密它的密码,它应该会吐出原始文本。
现在我正在接受字符串。将其分成一个字符数组,然后对密码执行相同的操作。之后,我获取密码,将所有这些字符转换为整数,找到所有字符的平均值,并将其用作原始文本中字符的偏移量。有点像:
textChars[1]= (char)((int)textChars[1]+offset);
然后我可以对加密的字符串做相反的事情:
encryptedChars[1]= (char)((int)encryptedChars[1]-offset);
问题是字符在不同平台上具有不同的值,因此有时偏移量会将 char 变成一些疯狂的数字(如负值),这只会将 char 变成问号。
我查看了标准 Java API 中的加密库,但如果密钥是每次启动程序时随机生成的,我对它的工作原理感到困惑。
我需要的是两个看起来像 String encrypt(String text,String Password) 的函数,它会吐出用密码加密的文本作为解密它的密钥,而 String decrypt(String encryptedText, String Password) 会吐出原始文本(如果密码是垃圾,则为乱码)
非常感谢任何帮助,这实际上只是一个个人项目,所以我不需要任何花哨的加密方法。
【问题讨论】:
-
哦,是的,MD5 是我无法阅读整篇文章的一种方式:)
-
Java 256bit AES Encryption 的可能重复项
标签: java string cryptography encryption