我正在用 Java 编写密码,但我无法执行以下操作:我想编辑一个 char 数组的值来加密它
I'm making a Cipher in Java but I can't do the follwing thing: I want to edit the value of a char array to encrypt it
我应该怎么做?
更改每个字符的 ASCII 值可能是答案,我不知道;这就是我问你们的原因!
Changing the ASCII value of each char might be the answer, I don't know; that's why I'm asking you Guys!
你可以在 char 中添加一个 int,但结果是一个 int - 你必须转换回 char 才能把它放回数组中,除非你使用复合赋值运算符:
You can add an int to a char, but the result is an int - you'd have to cast back to char to put it back in the array, unless you use the compound assignment operator:
array[x] += someInt;
或
array[x] = (char) (array[x] + someInt);
但是,通常这不是执行加密的适当方式.您通常会得到不可打印的字符,或者在 Unicode 中甚至没有特定含义的字符.相反,大多数加密算法旨在处理任意二进制数据——即字节数组.
However, usually this isn't an appropriate way of performing encryption. You'll often end up with unprintable characters, or characters which don't even have a specific meaning in Unicode. Instead, most encryption algorithms are designed to work on arbitrary binary data - i.e. byte arrays.
通常您会先将字符串转换为字节数组(例如,使用 String.getBytes(charset) - 一定要指定编码).然后对字节数组进行加密,给你一个新的字节数组.如果您真的需要将其转换回文本,请使用 base64 执行此操作 - 不 使用 new String(encryptedBytes),因为您没有不再有以普通文本编码方式编码的文本数据.
Usually you would convert the string into a byte array first (e.g. with String.getBytes(charset) - definitely specify an encoding). Then perform encryption on the byte array, giving you a new byte array. If you really need to convert it back to text, use base64 to do so - do not use new String(encryptedBytes), as you no longer have text data encoded in a normal text encoding.
这篇关于如何在 Java 中将整数添加到 char 中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!
“Char 不能被取消引用"错误quot;Char cannot be dereferencedquot; error(“Char 不能被取消引用错误)
Java Switch 语句 - 是“或"/“和"可能的?Java Switch Statement - Is quot;orquot;/quot;andquot; possible?(Java Switch 语句 - 是“或/“和可能的?)
Java替换字符串特定位置的字符?Java Replace Character At Specific Position Of String?(Java替换字符串特定位置的字符?)
具有 int 和 char 操作数的三元表达式的类型是什么What is the type of a ternary expression with int and char operands?(具有 int 和 char 操作数的三元表达式的类型是什么?)
读取文本文件并存储出现的每个字符Read a text file and store every single character occurrence(读取文本文件并存储出现的每个字符)
为什么我需要在 byte 和 short 上显式转换 char 原语Why do I need to explicitly cast char primitives on byte and short?(为什么我需要在 byte 和 short 上显式转换 char 原语?)