我要求:
[clojure.data.codec.base64 :as b64]
我定义了一个函数:
(defn toHexString [bytes]
"Convert bytes to a String"
(apply str (map #(format "%x" %) bytes)))
我运行此代码以在 Clojure 中获得结果:
(toHexString (b64/decode (.getBytes "WR0frsVTzVg8QdA9l45/MuYZ3GUKGynDF7WaEYcjudI")))
为了比较,我还在 PHP 中运行此代码(我确信 PHP 结果是正确的):
echo bin2hex(base64_decode("WR0frsVTzVg8QdA9l45/MuYZ3GUKGynDF7WaEYcjudI"));
我分别得到了 Clojure 和 PHP 的这些结果:
591d1faec553cd583c41d03d978e7f32e619dc65a1b29c317b59a118723
591d1faec553cd583c41d03d978e7f32e619dc650a1b29c317b59a118723b9d2
请注意,结果几乎完全相同。唯一的区别是 Clojure 结果中间缺少 0 和末尾缺少四个字符。
我不知道我在这里做错了什么。Clojure 中的 base64 解码功能是否损坏?或者我做错了什么?提前致谢!