我正在用Java编写密码,但不能做以下事情:
我想编辑一个char数组的值以对其进行加密

我应该怎么做?

我不知道改变每个字符的ASCII值可能是答案。这就是为什么我问你们!

最佳答案

您可以将int添加到char,但是结果是int-必须将其强制转换为char才能将其放回数组中,除非使用复合赋值运算符:

array[x] += someInt;


要么

array[x] = (char) (array[x] + someInt);


但是,通常这不是执行加密的适当方法。您通常会遇到无法打印的字符,或者甚至在Unicode中甚至没有特定含义的字符。取而代之的是,大多数加密算法都设计为可处理任意二进制数据-即字节数组。

通常,您会先将字符串转换为字节数组(例如,使用String.getBytes(charset)-一定要指定编码)。然后对字节数组执行加密,从而为您提供一个新的字节数组。如果确实需要将其转换回文本,请使用base64这样做-不要使用new String(encryptedBytes),因为您不再具有以常规文本编码方式编码的文本数据。

10-07 19:10
查看更多