PHP 加密和解密,而不是 base64 编码

标签 php base64 encryption

在我们的一个网络应用程序(PHP、MySQL 中)中,我们将用户的手机号码保存为加密值,并在我们向他们发送短信时对其进行解密。该应用程序运行良好。但是

现在 GoDaddy 删除了 base64_encode 和 decode 选项。这样我们就不能给用户发短信了。因此,我们将手机号码恢复到在本地运行时的正常状态。

我的问题是使用 key 加密和解密字符串的最简单和最安全的方法是什么。

有点像

Normal string : 9876543210  -> After encrypt with a key -> AASASOOPFPOEROP45664654456
Encrypted string : AASASOOPFPOEROP45664654456 -> on decrypt -> 9876543210 

我当前的代码

function encodeString($str){
  for($i=0; $i<5;$i++)
  {
    $str=strrev(base64_encode($str)); //apply base64 first and then reverse the string
  }
  return $str;
}


function decodeString($str){
 for($i=0; $i<5;$i++)
 {
    $str=base64_decode(strrev($str)); //apply base64 first and then reverse the string}
 }
 return $str;
}

请帮帮我。提前致谢

最佳答案

好吧,如果您使用的是 base64 编码/解码,那么您并没有加密数据,只是混淆了数据。

我不知道 godaddy 启用了哪些 php 扩展,所以我建议使用 phpSecLib 之类的东西

http://phpseclib.sourceforge.net/

它是一个独立的实现,您可以将其包含在您的脚本中,并将提供对您的数据的实际加密。 AES 或 Rijndael 应该适合您的应用程序

基本上,它会使用 key 加密字符串,即使您的数据库遭到破坏,如果没有加密数据的 key (您会将其硬编码到脚本中),也无法解密数据。这不同于简单地对其进行编码,在这种情况下,如果有人掌握了数据库,他们可以通过各种不同的编码方法运行第一个字符串来对其进行解码,直到找到有效的方法。然后通过同样的解码方式运行剩下的

关于PHP 加密和解密,而不是 base64 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17182747/

相关文章:

php - 管理多个 HTML 片段的命名空间

php - 从数据库中删除相似数据

html - CSS 中的 Base64 图标与多种用途的外部图像的性能

c# - 如何使用 .NET Core 将 Base64 图像上传到 firebase

javascript - Base64 图像数据不适用于 fabricjs 中的 loadfromJSON

node.js - Mongoose 加密中间件聚合后不调用

java - 尝试在 Mule 中进行 PGP 加密时,publicKey 不应为空

php - Yii:使用多个表

php - 如何将两个或多个破折号转换为单个破折号并删除字符串开头和结尾的所有破折号?

java - 使用 Cipher 解密我的消息时出错