php - 求一段 node 代码,有关编码

查看:102
本文介绍了php - 求一段 node 代码,有关编码的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

目前在公司重构专案,由php翻成nodejs,遇到编码会不一致问题,不知如何解决,有请大大帮小弟解答,以下附上nodejs与php代码.

php

<?php
$h = hex2bin('c8a35122a3dbae742a1da6b1868fdbca');
$h = hash("sha256", $h);
echo $h;

nodejs

import SHA256 from 'crypto-js/sha256'
(async() => {

  function hex2bin (s) {
    //  discuss at: http://locutus.io/php/hex2bin/
    // original by: Dumitru Uzun (http://duzun.me)
    //   example 1: hex2bin('44696d61')
    //   returns 1: 'Dima'
    //   example 2: hex2bin('00')
    //   returns 2: '\x00'
    //   example 3: hex2bin('2f1q')
    //   returns 3: false
    var ret = []
    var i = 0
    var l
    s += ''
    for (l = s.length; i < l; i += 2) {
      var c = parseInt(s.substr(i, 1), 16)
      var k = parseInt(s.substr(i + 1, 1), 16)
      if (isNaN(c) || isNaN(k)) return false
      ret.push((c << 4) | k)
    }
    return String.fromCharCode.apply(String, ret)
  }

  var h = await hex2bin('c8a35122a3dbae742a1da6b1868fdbca')
  h = await SHA256(h).toString()
  console.log(h)
})()

$ php test.php                                                                                                                                                                 
812d2ab805b8144bc5ba87c62abcbcff57eac23a7b5b113487560eb3fa3d25c7

$ babel-node test.js                                                                                                                                                          
e6b036bfd0fe9394d81ecd55c586d72a18d7d32f217f6770d071ff1484455dfd

解决方案

雖然不太知道原因,但換了一套解決問題了
https://github.com/cryptocoin...

这篇关于php - 求一段 node 代码,有关编码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆