我有嚴重的問題,我希望會是一個簡單的調用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位),那麼將不存在=符號。 –