JavaScript, Java, Php或c++密码加密-修改算法

JavaScript, Java, Php, or C++ cipher encryption - reworking algorithm

本文关键字:加密 算法 密码 修改 c++ Java Php JavaScript      更新时间:2023-09-26

我正试图实现一个循环,将字符串加密到给定的int shift的移位量。下面的代码工作得很好,但是我想更改代码,以便它以降序而不是升序加密。你知道算法要改什么吗?

int shift = 3;
string line = "abc";
for (int i = 0; i < line.length(); i++) {
    if (line[i] >= 'a' && line[i] <= 'z') {
        int rotate = line[i] + shift;
        if (rotate > 'z') line[i] = ((line[i] - 26) + shift);
        else line[i] = rotate;
    }
}
cout << line << endl;

通过3的移位,上述代码将string line "abc"转换为"def",但我试图获得"dcb"的输出。

  • 注意:代码是在c++中,但我会接受JavaScript, Java,或Php的建议,就像c++一样,只要它的原始代码没有库资源。谢谢大家。

你可以升级shift变量然后不再检查溢出或递增检查递减

int shift = -3;
string line = "abc";
for (int i = 0; i < line.length(); i++) {
    if (line[i] >= 'a' && line[i] <= 'z') {

        int rotate = line[i] + shift;
        if (rotate < 'a') line[i] = ((line[i] + 26) + shift);
        else line[i] = rotate;
    }
}
cout << line << endl;

如果你想处理大写

,你也可以在循环中执行下面的if操作
if (line[i] >= 'A' && line[i] <= 'Z') {
        int rotate = line[i] + shift;
        if (rotate < 'A') line[i] = ((line[i] + 26) + shift);
        else line[i] = rotate;
    }