gpt4 book ai didi

java - 这种 vigenere 密码在 Java 中是否可行?

转载 作者:行者123 更新时间:2023-12-02 04:43:14 24 4
gpt4 key购买 nike

关闭扫描仪并提示输入我拥有的 vigenere 密码:

for(int i = 0; i < text.length(); i++){
int first = text.charAt(i);
for(int j = 0; j < key.length(); j++){
int second = key.charAt(j);
int that = first + (second % 26);
output = output + (char)that;
}
}

对于 vigenere 密码,我的想法是让一个 for 循环捕获明文单词的每个字符。然后让第二个 for 循环捕获关键字的每个字母。其中明文“first”将代表字母的原始位置。关键字将代表明文字符的每个单独移位。这可能吗?

最佳答案

你的问题是你有 2 个循环,但你应该只有 1 个循环。

您应该在 key 长度上使用模数来为您提供该迭代​​的移位,而不是 key 循环。

修复逻辑(并为变量提供合理的名称):

for (int i = 0; i < text.length(); i++){
int letter = text.charAt(i);
int shift = key.charAt(i % key.length()) - 'A';
int encrypted = (letter + shift) % 26 + 'A';
output = output + (char)encrypted;
}

此代码与您的代码的主要区别在于表达式 i % key.length(),它不断循环键的字母以确定每个字母的移位。

关于java - 这种 vigenere 密码在 Java 中是否可行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35642912/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com