java是否正确使用for循环、子字符串以及十六进制ascii码到字符的转换?
我正在尝试创建自己的java加密程序来加密字符串:它接受一个字符串并将每个字符转换为其十六进制ascii表示形式。我的加密是在表示每个字符的十六进制ascii的两个数字的每一侧添加一个随机数和随机字母。这将为每个加密的字符返回一个6个字符的字符串。例如,(help->;h->;68->;3+6+g+1+8+f)我尝试使用四个函数(encryptMessage、encryptCharacter、decryptMessage、decryptCharacter)实现。 我搜索了这个网站,找不到任何对我有帮助的帖子。 您能否帮助我确定为什么无法使用decryptCharacter/decryptMessage方法成功解密邮件?我现在只运行一个字符,它不会返回我最初输入的相同字符。 1.我是否在decryptMessage和decryptCharacter方法中正确使用了for循环?2.在方法decryptCharacter中,我是否正确地将ascii十六进制表示形式转换回其各自的字符?如果没有,有人能解释一下我如何更正代码吗
我已将我的程序发布在pastebin上: http://pastebin.com/6QMFYrKD
感谢您的帮助!我是java新手,我正在尝试编写程序,以便更好地理解如何使用主程序调用的这些方法
# 1 楼答案
在代码中,
DecryptCharacter
方法未正确解密。将随机字符和数字添加到字符十六进制表示形式的每个数字中。 所以,你应该这样做而不是
而且
DecryptMessage
方法中有一个错误if条件
if (i >= encryptedText.length() - 6) {
不起作用,因为在加密消息的最后6个字符之前,它将始终返回false, 因此,您可以尝试以下内容