如何在Java中为char添加整数?

Sto*_*one 1 java encryption char

我在Java中使用Cipher,但我不能做以下事情:我想编辑char数组的值来加密它

我该怎么做?

更改每个字符的ASCII值可能是答案,我不知道; 这就是为什么我问你们伙计们!

Jon*_*eet 8

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

array[x] += someInt;
Run Code Online (Sandbox Code Playgroud)

要么

array[x] = (char) (array[x] + someInt);
Run Code Online (Sandbox Code Playgroud)

但是,通常这不是执行加密的适当方式.您通常会得到不可打印的字符,或者甚至在Unicode中没有特定含义的字符.相反,大多数加密算法都设计用于处理任意二进制数据 - 即字节数组.

通常,您首先将字符串转换为字节数组(例如,使用String.getBytes(charset)- 明确指定编码).然后对字节数组执行加密,为您提供一个新的字节数组.如果你真的需要将其转换回文本,使用的base64这样做-做没有new String(encryptedBytes),因为你不再需要在一个普通的文本编码编码的文本数据.


Juv*_*nis 5

在 Java 中,charint是兼容类型,因此只需将它们添加到+运算符即可。

char c = 'c';
int x = 10;
Run Code Online (Sandbox Code Playgroud)

c + x结果是一个整数,因此您需要进行显式转换才能将其分配给您的字符变量。

c = (char)(c + x); // After this assignment, c = 'm'
Run Code Online (Sandbox Code Playgroud)