+
95
-

回答

使用js的String.fromCharCode和php的chr配合实现字符串位移加密解密,具体js和php代码如下:

点击查看全文

前端js

function weiyi(oldstr, shfit) {
    var result = "";
    for (var i = 0; i < oldstr.length; i++) {
        var c = oldstr.charCodeAt(i); // 获取字符的Unicode编码

        //检测字符是否为大写或小写字母并进行位移
        if (c >= 65 && c <= 90) {
            // 大写字母
            result += String.fromCharCode((c - 65 + shfit) % 26 + 65);
        } else if (c >= 97 && c <= 122) {
            // 小写字母
            result += String.fromCharCode((c - 97 + shfit) % 26 + 97);
        } else {
            // 非字母字符不变
            result += oldstr.charAt(i);
        }
    }


    return result;
}
console.log(weiyi("HelloWorld", 154));//生成FcjjmUmpjb

后端php

<?php
function weiyides($_getcodestr, $shift) {
    $result = "";
   $shift = 26 - ($shift % 26);
    // 遍历字符串中的每个字符
    for ($i = 0; $i < strlen($_getcodestr); $i++) {
        $c = ord($_getcodestr[$i]); // 获取字符的ASCII编码

        // 检测字符是否为大写或小写字母并进行位移
        if ($c >= 65 && $c <= 90) {
            // 大写字母
            $result .= chr(($c - 65 + $shift) % 26 + 65);
        } elseif ($c >= 97 && $c <= 122) {
            // 小写字母
            $result .= chr(($c - 97 + $shift) % 26 + 97);
        } else {
            // 非字母字符不变
            $result .= $_getcodestr[$i];
        }
    }
    return $result;
}
echo weiyides("FcjjmUmpjb",154);

网友回复

我知道答案,我要回答