JavaScript, Java, Php或c++密码加密-修改算法
JavaScript, Java, Php, or C++ cipher encryption - reworking algorithm
我正试图实现一个循环,将字符串加密到给定的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;
}
相关文章:
- 循环比赛位置算法
- javascript扫雷器floodfill算法不能正常工作
- javascript加密实现,包括可信否认
- Node JS中的排名系统算法
- 查找仅适用于原始图像的图像放大算法的名称
- 在数组的 2/3 上调用自身的排序算法
- 如何正确使用AES加密
- Luhn算法的实现
- 算法:从数组(javascript/angular)中按当前日期获取上一个和下一个事件
- 如何在Node.JS中加载加密私钥
- react本机AES加密匹配Java解密算法
- 网络加密API:如何发现支持的算法
- Webcrypto API/算法,用于加密、解密以及签名、验证
- 如何使用RSA/ECB/PKCS1Padding算法通过JavaScript对加密字符串进行解密
- http上的自定义JS加密算法
- 简单的非对称加密算法
- 最好的加密和解密算法的url
- 使用 Javascript 加密并使用 C# 解密的简单算法
- 密码加密算法在从PHP转换为JS时会抛出异常
- JavaScript, Java, Php或c++密码加密-修改算法