
1 shiny PRO 上 node 的代码,贴 gist。 |
2 Emory_M OP |
3 shiny PRO |
4 shiny PRO 忘记贴图了: |
6 Emory_M OP @shiny 我是这样生成 生成私钥的:openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem |
7 shiny PRO 我用 ssh-keygen 重新生成了一个 test_rsa 结果一样。上传到了 debian 主机上生成也一样。 你提供的命令行看上去不是生成私钥的,而是根据私钥生成 public_key。 这是生成的 rsa: https://gist.github.com/shiny/6410836 |
8 Emory_M OP @shiny 呵呵,贴错了,是 openssl genrsa -out rsa_private_key.pem 1024 |
9 shiny PRO 用这个生成的 pem 同样没问题,以下是我的版本信息: php -v PHP 5.3.15 with Suhosin-Patch (cli) (built: Dec 9 2012 19:32:02) openssl OpenSSL support => enabled OpenSSL Library Version => OpenSSL 0.9.8x 10 May 2012 OpenSSL Header Version => OpenSSL 0.9.8r 8 Feb 2011 node -v v0.10.12 |
10 Emory_M OP @shiny 非常感谢 看来是node.js的问题 iOS的openssl库加签和php是一致的 重新编译试试 你的openssl信息是如何打印的? 我的版本如下: Debian 7.0 64Bit php -v PHP 5.4.4-14+deb7u3 (cli) (built: Jul 17 2013 14:54:08) node -v v0.10.7 OpenSSL> version OpenSSL 1.0.1e 11 Feb 2013 |
11 shiny PRO |
12 Emory_M OP @shiny 了解到原因了,如果出现ascii以外的unicode字符那么加签名 结果就不一样了,看来又是node内部编码问题了 |
13 Emory_M OP signer.update(str,'utf8') 解决 |