java - 使用 XOR 加密 Cyrillic 中的字符串
问题描述
我想用 XOR 加密字符串。源文本是西里尔文。加密后,我得到了象形文字,我该如何修复它?我将使用 UTF-8 编码。
String text = "Какой-нибудь русский текст"; // some cyrillic text
String sKey = LFSR(); // return string "10011010" for example
System.out.println("[PSP]: key: " + sKey); // output: 10011010
byte[] txt = text.getBytes(StandardCharsets.UTF_8);
byte[] key = sKey.getBytes(StandardCharsets.UTF_8);
byte[] res = new byte[txt.length];
for (int i = 0; i < txt.length; ++i) {
res[i] = (byte) (txt[i] ^ key[i % key.length]);
}
try {
System.out.println(new String(res, StandardCharsets.UTF_8));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
输出:
��������������������������������������������</p>
我认为这是因为字节值是负数。
解决方案
推荐阅读
- mysql - 如何使用 group by 计算上一个总数和当前总数
- django - 如何通过前端 javascript 手动关闭条件
- laravel - Botman 停止在 Messenger 中回复
- selenium - Selenium - 在 Google 中搜索多个关键字 v2
- python - 如何使用 Tensorflow make_csv_dataset 为 Keras 模型配置数据集管道
- python - driver.get 找不到 chromdriver
- c# - 如何调用 Elavon 客户支付 API?
- python - Python:如何将动态变量传递给 XML?
- php - PHP MYSQL 查询执行
- python - 如何使用 python 检索 CN 支持的 TLS 版本和支持的密码