這里寫問題描述
做一個(gè)數(shù)據(jù)同步 同步的返回?cái)?shù)據(jù)需要 sm2算法加密 這個(gè)算法是中國的
php 沒有這個(gè)算法 要自己寫
人家給了個(gè)示例 示例是java的
我看了網(wǎng)上有幾種處理
第一種是 直接調(diào)用 linux 命令 返回結(jié)果 這個(gè)我不會(huì)
第二種是 自己打包擴(kuò)展 這有一個(gè) https://gitee.com/state-secret-series/openssl-ext-sm2
沒研究 又怕整好了之后 算出來的 又簽名不一致
第三種是 直接安裝一個(gè) java服務(wù) 用他們示例代碼 放到一個(gè)服務(wù)器上面 用php 先整理好要計(jì)算的數(shù)據(jù) curl 請求 127.0.0.1:xxx(和php再同一臺(tái)機(jī)器上java服務(wù)) 然后java算完了 返回來 加密的字符串
php 返回 nginx 返回瀏覽器 這種肯定能行(感覺不夠效率,一個(gè)java太占服務(wù)器內(nèi)存 就干這點(diǎn)事)
有沒有 做過 sm2 算法 直接 引入就能用的
有沒有大佬之前有做過的經(jīng)歷 有沒有更好的方法
php 不知道咋實(shí)現(xiàn) 用 lpilp/guomi 和java 的算法 不一樣 JAVA加密出來的字符串是 04XX.... 開頭的
php 那個(gè)包加密出來的 都不是 04開頭的 加密出來的 java解密不了 java加密出來的 php解密不了
最終我是用 java springboot 把那個(gè)加密算法 搭建出來 然后php把要加密的數(shù)據(jù) 請求java那個(gè)加密 然后返回 加密的數(shù)據(jù)