java使字符串不可读
我需要一个尽可能短、尽可能快的代码来将字符串更改为不可读的内容(对于人类而言),并使其再次可读。这一切都需要在java中实现
比如:
encrypt("test");
会导致这样的结果:
ôT¿ÄÜTV CÁˆ“5="ËÂÀœššbÀß{¡ä³
及
decrypt("ôT¿ÄÜTV CÁˆ“5 1="ËÂÀœššbÀß{¡ä³");
会不会再次变成原来的结果
test
我应该往哪个方向走,有什么课程可以帮我做到这一点吗?我指的不是Base68Encryption之类的东西,我指的是可以通过互联网安全发送的真正不可读的文本
# 1 楼答案
有两种方法可以解决这个问题:
您可以选择一个现有的高质量加密系统,该系统在典型的JVM中作为标准实现。然后:
将字符串编码为字节;e、 g.使用UTF-8
使用约定的加密系统和先前约定的密钥加密字节
使用base_64或等效代码对字节进行编码
在另一端:
解码基_64
使用相同的系统和密钥解密字节
解码UTF-8得到一个字符串
使用SSL/TLS保护TCP/IP连接,并按原样通过连接发送字符串
这两种选择都不是特别快。但不要试图发明自己更快的加密系统。一个“自制”的加密系统很可能比你意识到的要容易破解
# 2 楼答案
下面是一个使用真正加密的简短示例。它是128位AES,非常安全——当然,任何想象都无法读取
它会生成一个随机密钥,因此每次运行时都会有所不同。您需要在以某种方式交换数据的两个程序之间共享它们的密钥
输出:
# 3 楼答案
参见数据算法的加密和解密,示例代码为http://www.code2learn.com/2011/06/encryption-and-decryption-of-data-using.html。加密/描述嵌入在JRE中,使用起来并不困难