Magento使用DES-CBC加密

最模板 2022-04-25 23:54 Magento教程

Magento工程师必须经常有串联第三方服务的经验。许多第三方服务提供商要求在传输数据之前根据指定的加密方法对数据进行加密。有数百种加密数据的方法。今天,我们将介绍如何在Magento中使用DES-CBC算法加密数据。

要准备的参数

$key:通常由第三方服务提供商提供

$iv:初始向量,通常由第三方服务提供商提供,必须是长度为8的常量字符串。

$plaintext:需要加密的明文

获取加密的对象

private function getCrypt(string $key, string $iv)
{
    return new Mcrypt($key, MCRYPT_DES, MCRYPT_MODE_CBC, $iv);
}

其中Mcrypt是类 Magento Framework Encryption Adapter Mcrypt。当创建一个新的mcrypt对象时,除了刚才提到的以外,输入参数应该指定它的密码是DES (MCRYPT_DES)并且它的模式是CBC (MCRYPT_MODE_CBC)。然后

加密预处理

在加密明文之前,明文字符串的长度必须填充到$iv字符串长度的倍数。因为$iv字符串的长度是8,如果明文字符串的长度是20,则明文必须填充到24位。要填充的位数转换成字符作为ascii码,即填充。

private function pad(string $text)
{
    $padSize = 8 - (strlen($text) % 8);
    $padChr = chr($padSize);
    return str_pad($text, 8, $padChr);
}

加密功能

准备好了,现在可以写加密函数了!明文填充到8倍数的长度后,就可以用刚得到的Mcrypt对象进行加密了。

public function (string $plaintext, string $key, string $iv)
{
    $plaintext = $this->pad($plaintext);
    return $this->getCrypt($key, $iv)->encrypt($plaintext);
}

到目前为止,我们已经使用DES-CBC成功地实现了Magento加密。

相关文章

  1. 通过SQL在Magento中导入产品评论

    当客户看到具有好评的产品时,他们更有可能做出购买决定。 另外,一些搜索引擎为具有产品评论的网站提供了比没有评论的网站更高的排名。 由于Magento不支持导入产品评论的默认功...

    2020-04-24
  2. 查找Magento2订单销量MySQL字段值序列化办

    我们在Magento 2中进行数据库查询最近一个月的销量的时候,我们需要的是安装sku的下拉选项进行查找,既是看看今年那个产品卖得最好,销售的最好。那么我们如何做呢? 首先我们要打...

    2020-04-24
  3. 如何在Magento2安装配置中文汉化包

    magento2版本与magento1相比较做中文汉化变化还是很大,今天最模板整理修正如下: 常用的安装方式有2种: 方法一:通过composer安装中文包; 安装中文包: composer require mageplaza/magento-2-chi...

    2020-04-23
  4. 记录magento2.2网站打不开的解决过程

    记录magento2.2网站打不开的解决过程 1.1apache找不到目录 在域名根目录下找不到项目目录: 问题出在根目录的.htaccess文件中 1.2现在网站能打开,提示Magento\Framework\EscapeHelper does not exites 在m...

    2020-09-08
  5. Magento2网站每天都宕机,需要重启服务器

    我在Magento 2.2.2中有一个电子商务网站,它几乎每天都在宕机死机。每当它发生故障时,用户得到的网站太长时间也会响应而且从未加载。为了让网站再次运行,我必须重新启动服务器然...

    2020-02-25
  6. 如何在magento2.3 nginx配置https

    现在有很多magento网站免费的https,基本上90%上线的网站都用了https。 但是很多朋友对magento里的nginx配置https不熟悉,现在我们就来整理下。 一,准备工作 你至少需要提供如下必须用品...

    2020-04-23
  7. Magento2后台登录用户输入错误被锁住办法

    Magento 2有时候在登录后台账号的时候,不小心输入的错误密码次数过多,这个时候Magento 2为了安全的考虑将你这个用户给锁住,既是不能登录了,即使你想起了正确的密码在输入登录也...

    2020-04-24
  8. 解决Magento1发送邮件Email代码乱码办法

    我们在做magento1活动或者开发插件的时候 ,时常为了通知用户就是用系统的email发送,但是如果你发送的内容是是日语或者其他语言的时,出现了乱码,发送email代码如下。 private functi...

    2020-04-24
  9. 将Magento2从企业版迁移/降级到社区版

    Magento 2企业版(EE)是Magento 2社区版(CE)的付费版本。如果您是一家渴望成长并期望巨大网站流量的企业,那么EE是您公司的最佳解决方案。此外,企业版完全由Magento团队支持。订户通...

    2020-04-24
  10. Magento2控制台命令总结

    Magento 2开发与Magento 1完全不同Magento 2更依赖命令行操作整个系统,例如这些命令实际上在管理诸如缓存,升级,部署模式,索引器等方面非常方便。您可以通过运行以下命令检查整个命...

    2020-04-24