小编Kaz*_*tus的帖子

使用PHP产生与CryptoJS.enc.Base64相同的结果

我有一个javascript函数,试图将其转换为PHP,它使用CryptoJS库,具体来说是components/enc-base64-min.jsrollups/md5.js。他们可以在这里找到。

这是这段代码

// Let's say str = 'hello';

var md5 = CryptoJS.MD5(str);
md5 = md5.toString(CryptoJS.enc.Base64);
// md5 outputs "XUFAKrxLKna5cZ2REBfFkg=="
Run Code Online (Sandbox Code Playgroud)

我假设str使用md5 对变量进行了哈希处理,然后将其编码为Base64,所以我尝试了以下简单代码

$md5 = md5($str);
$md5 = base64_encode($md5);
// md5 outputs "MmZjMGE0MzNiMjg4MDNlNWI5NzkwNzgyZTRkNzdmMjI="
Run Code Online (Sandbox Code Playgroud)

然后我尝试验证两个输出,看起来JS输出甚至不是有效的Base64字符串。

为了进一步理解,我尝试toString()W3Schools中查找参数,但这对我来说没有意义,因为根据参考,该参数应该是整数(2、8或16),那么为什么要CryptoJS.enc.Base64使用它呢?

我的目标不是使用JS生成有效的base64编码的字符串,而是使用PHP生成相同的输出。

javascript php cryptography cryptojs

5
推荐指数
1
解决办法
481
查看次数

我在str_replace()做错了什么?

这是HTML代码:

<a href="?loadurl=/search/Battlefield 3/1/99/0/">
  <img src="static/img/next.gif" border="0" alt="Next" />
</a>
Run Code Online (Sandbox Code Playgroud)

这是PHP代码:

//Fix Icons
$toremove = str_replace("next.gif\" border=\"0\" alt=\"Next\">", "dot.jpg\" border=\"0\" alt=\"Next\"><i class=\"icon-magnet\" style=\"color: #ffdd00;text-decoration: none;\"></i>", $toremove);
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么 ?任何帮助,将不胜感激 :)

〜Kazilotus

html php

0
推荐指数
1
解决办法
94
查看次数

标签 统计

php ×2

cryptography ×1

cryptojs ×1

html ×1

javascript ×1