当前位置: 首页 > 知识库问答 >
问题:

用PHP进行加密和解密

云季同
2023-03-14
    null

下面是我当前的代码:

    function tnsencrypt($master_code,$text) { //the text to be encrypted $plain_text= $text;

//letters of alphabet array $alphabet=array('0','1','2','3','4','5','6','7','8','9','=','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');

//$alphabet_len = count($alphabet); //$signature_len = 17; // signature=TnpMsgE //$master_code_len = 10; $mcursor = 0;

//positions of the letters in alphabet : The array_flip() function returns an array with all the original keys as values, and all original values as keys. $flip=array_flip($alphabet); //plaintext array $plain_text=str_split($plain_text); $master_code=str_split($master_code);

$n=count($plain_text); $encrypted_text=''; for ($i=0; $i }

}

//echo $encrypted_text; return $encrypted_text; }

function tnsdecrypt($master_code,$text) { //the text to be decrypted $encrypted_text= $text;

//letters of alphabet array $alphabet=array('0','1','2','3','4','5','6','7','8','9','=','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'); //positions of the letters in alphabet : The array_flip() function returns an array with all the original keys as values, and all original values as keys. $flip=array_flip($alphabet);

//plaintext array $encrypted_text=str_split($encrypted_text); $master_code=str_split($master_code);

$n=count($encrypted_text); $decrypted_text=''; for ($i=0; $i

} else {
    $decrypted_text.= $encrypted_text[$i];  
}
//move mcursor
$mcursor = ($mcursor+1)%10;
}

//echo $encrypted_text; return $decrypted_text;

}

if(isset($_POST["text"])) { $text = $_POST["text"]; $shifttext = $_POST["shifttext"]; echo "
Encrypted Text: ".tnsencrypt($shifttext,$text); echo "
Decrypted Text: ".tnsdecrypt($shifttext,tnsencrypt($shifttext,$text));

}

?> 

以下是我的结果:

原文:val1=1234567 val2=abcdef val3=abcdef

正如您所看到的,加密中缺少几个字符,这也影响了解密。缺的是2号线的v和3号线的v

你知道为什么吗?

共有1个答案

年文柏
2023-03-14

你为什么要这么做?您可以使用几种单向和双向加密解决方案,如果这是为了实际使用,而不仅仅是学术练习:

单向:crypt()
双向:mcrypt

加密几乎是一个解决的问题。

 类似资料:
  • 问题内容: 我正在尝试在Python中加密某些内容,并在nodejs应用程序中对其进行解密。 我正在努力使这两个AES实现一起工作。这是我的位置。 在节点中: 产生输出: 在python中 这产生输出 显然,它们非常接近,但是node似乎在用某些内容填充输出。有什么想法可以使两者互操作吗? 问题答案: 好的,我已经弄清楚了,节点使用OpenSSL,后者使用PKCS5进行填充。PyCrypto不处理

  • 问题内容: 这是我正在做的事情,可能看起来有些笨拙,但是可以帮助您解决该问题。我得到一个。阅读几乎所有相关主题,但找不到合适的解决方案。我是加密解密程序设计的新手,需要在我的Java应用程序之一中实现它。 谢谢..这就是代码的样子.... 问题答案: 在这里,您需要了解的是密文可能包含不可打印的字符。因此,当您使用readLine()时,它可能不会为您提供文件中的所有字节。 同样,它并没有给您您认

  • 问题内容: 更新 我已经对C#代码进行了更改,因此它使用的块大小为256。但是现在,您好世界看起来像这样http://pastebin.com/5sXhMV11,我无法弄清楚应该使用rtrim()获得什么一团糟的最后。 另外,当您说IV应该是随机的时,您的意思是不要再使用一次相同的IV,否则我编码的方式错误吗? 再次感谢! 你好 我正在尝试使用在C#中加密的PHP解密字符串。我似乎无法让PHP使用

  • 我正在尝试创建一个多平台的加密-解密机制,到目前为止,我已经能够用python进行加密,用C进行解密,反之亦然,现在我正在尝试使用python脚本和node js脚本进行同样的操作。我能够在node js中加密字符串,并在python中解密,但在node中使用python的加密消息进行解密是不可能的。这里是python代码: 以下是Nodejs代码: 我的节点部分来自:AES-加密加密(node

  • 问题内容: 我正在使用JavaScript加密用户密码,如下所示: 它工作正常,但现在我正尝试在服务器端的PHP中像这样解密: 它根本不起作用,解密后的密码字符串看起来很奇怪: 有用的注释后,这是我的JavaScript代码的当前状态: 我正在将saltHex和CipherTextHex发送到PHP服务器,并且正在使用mcrypt_decrypt(),如下所示: 仍然无法使用此更新的代码。 有人可

  • 问题内容: 我之所以写这个问题+答案,是因为我挣扎了很多(也许是因为缺乏经验),并迷失了使用node或python进行加密/解密的许多不同方式。 我以为我的案子将来可以帮助人们。 我需要做的是: 从表单获取数据,使用Crypto(node-js)对其进行加密 在Python中传递加密的数据,然后使用PyCrypto将其解密。 我选择使用AES加密。 这是我的开始方式(我不会尝试的所有事情): 我遵