问答

在线急C#代码转PHP 自己写了一个 发现还是有出入

作者:admin 2021-06-21 我要评论

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace study_test4{ class Program { static void Main(string[] arg...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace study_test4
{
    class Program
    {
        static void Main(string[] args)
        {

            string s;                                //定义存储输入字符串变量
            int L;                                    //定义存储字符串长度的变量


            /*对输入的字符串完成加密*/
            Console.WriteLine("please input a string:");
            s = Console.ReadLine();           //输入字符串

            L = s.Length;                         //计算字符串长度
            char[] arr=new char[L];           //定义一个字符数组,存储加密后的字符串
            arr[0] = s[L - 1];                    //把输入字符串的末尾字符存储到字符数组的第一位置

            for (int i = 1; i < L; i++)
               arr[i]= (char)((int)(s[i-1])+3);/*从输入字符串的第二个字符起到输入字符串的倒数第二个字符,

                                                        *每个字符依次加三,然后存储到字符数组剩余的位置*/

            Console.Write("加密后:");
 
            for (int i = 0; i < L; i++)
            Console.Write("{0}",arr[i]);      //输出加密后的字符

            /*对加密的字符串进行解密*/
            char[] arr_decode = new char[L];
            arr_decode[L - 1] = arr[0];
            for(int i = 1; i < L; i++)
                arr_decode[i-1] = (char)((int)(arr[i])-3);

            Console.Write("解密后:");
    
            for (int i = 0; i < L; i++)
                Console.Write("{0}", arr_decode[i]);//输出加密后的字符
               
            Console.ReadLine();                          //让控制台停在显示界面
        }
    }
}
###
function testEncrypt($s)
{
    $len = mb_strlen($s);
    $arr[0] = $s[$len-1];
    $ret = '';
    for ($i = 1; $i < $len; $i++){
        $arr[$i] = chr(ord($s[$i-1])+3);
    }
    for ($i = 0; $i < $len; $i++) {
        $ret .= $arr[$i];
    }
    var_dump($ret);
}
###

感谢 @唯一丶 给的提示
下面方法支持中文和数字解密

        function testDecrypt($s){
            $res = '';
            $len = mb_strlen($s);
            $arr = [];
            for($i=1;$i<$len;$i++){
                $arr[$i-1] = mb_chr(mb_ord(mb_substr($s,$i,1))-3,'UTF-8');
            }
            $arr[] = mb_substr($s,0,1);
            for ($i=0;$i<$len;$i++) {
                $res .= $arr[$i];
            }
            return $res;
        }

加密代码

function testEncrypt($s){
            $res = '';
            $len = mb_strlen($s);
            $arr = [];
            $arr[0] = mb_substr($s,$len-1,1);
            for($i=1;$i<$len;$i++){
                $arr[$i] = mb_chr(mb_ord(mb_substr($s,$i-1,1))+3,'UTF-8');
            }
            for ($i=0;$i<$len;$i++) {
                $res .= $arr[$i];
            }
            return $res;
        }

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 在线急C#代码转PHP  自己写了一个 发现

    在线急C#代码转PHP 自己写了一个 发现

  • 兄弟们iview的表格有没有遇到过这个问

    兄弟们iview的表格有没有遇到过这个问

  • redis 管道报错

    redis 管道报错

  • git 合master代码的疑问

    git 合master代码的疑问

腾讯云代理商
海外云服务器