我有严重的问题,我希望会是一个简单的调用PHP的 openssl_public_encrypt();
加密密码(RSA)与公钥
可悲的是,我得到一个无效的公钥警告。
我的目标是简单的RSA加密使用他们的API提供公钥目前看起来是这样的一个用户密码:
+ Tir6 + unMOaQ5tHqjjjwnlAMhccnCSMFEi3a0mhIxbW + O/GukjomGyzckQT2h0Ys70JezHbNq5YS3sYkNF29kCkz4HuNfy9eEjE/clA9/zyfT8ZcbnusLcLz2xNgbTp62fQdzBnReI5 +民主党/ N24krYvHaYIr8ACxDqBv2TR3E9M = AQAB
显然使用我想相同的服务工作,以实现使用中发现这些步骤的解决方案:
- 从中提取系数和指数公钥
- 重新构建在MS PUBLICKEYBLOB格式的关键
- 呼叫的OpenSSL转换的关键PEM格式
- 负载从转换后的文件 的PEM公共密钥
- 对密码进行加密
但是(转换为UTF-16LE后),不仅我不知道它有可能在PHP做的,我觉得必须有一个更简单的方法!
我看到的一篇文章暗示说指数可能会出现在最后一个符号(如此AQAB)之后,但我不知道这是否可靠。
为什么你想要加密密码而不是散列呢? – kero
我真的不明白他们为什么不接受哈希,甚至不使用HTTPS作为SOAP服务。这很可笑。即使他们坚持这样的RSA加密,当然也没有必要在运行中创建证书。可悲的是,这不是我的API来编辑。 –
不,你不能使用最后一个=符号来拆分,只是删除AQAB可能会工作。如果密钥是3个字节的倍数(例如3072位),那么将不存在=符号。 –