1. 程式人生 > >JAVA與PHP之間的openssl互動加密

JAVA與PHP之間的openssl互動加密

最近在做rsa加密,通過java生成的公私金鑰,然後在php端接受處理。

在本地wamp環境下,我使用的是php5.6.19版本,開啟openssl模組,通過公鑰生成註冊碼,毫無問題。

在上傳到linux伺服器,環境是php5.5.8,開啟openssl模組,一直報公鑰key是無效的,一頓百度,沒有頭緒。

最後在linux中,修改程式碼

$public_key = "這是java傳過來的經過base64編碼的公鑰(一般是M字頭的)";
$pem = chunk_split($public_key,64,"\n");//轉換為pem格式的公鑰
$pem = "-----BEGIN PUBLIC KEY-----\n".$pem."-----END PUBLIC KEY-----\n";
$puKey = openssl_pkey_get_public($pem);//獲取公鑰內容


發現在執行程式碼時是正確的。

金鑰完全沒有變化,經過檢查本地openssl版本是2016年的,伺服器上openssl版本是2013年的,猜測大概是新版本有所更新,解決了換行問題。

相關推薦

JAVAPHP之間openssl互動加密

最近在做rsa加密,通過java生成的公私金鑰,然後在php端接受處理。 在本地wamp環境下,我使用的是php5.6.19版本,開啟openssl模組,通過公鑰生成註冊碼,毫無問題。 在上傳到linux伺服器,環境是php5.5.8,開啟openssl模組,一直報公鑰ke

javascriptphp實現openssl加密/解密

var method utf8 加密 Opens ole u+ php_eol 下載 javascript:a. 下載: npm install crypto-js b. 代碼: var CryptoJS = require("crypto-js") // 加密 var

Java.Net環境下RSA加密解密互動不成功的問題解決【續】

在前面《一篇文章》中提到了 Java和.Net環境下RSA加解密不能互通的情況,最後通過重寫.Net下面RSA演算法來解決了問題;本文將就這個問題再深入一點,看是否能有其他方式可以解決; 首先來看下Java對Security領域的支援情況Jdk提供了非常強大的API集合,以及

JAVAmysql之間的編碼問題

環境 fix 編碼問題 itl nic oca url 遇到 問題 之前一直沒有自己動手配置過數據庫所以也一直沒有發現這個問題,百度了一下發現網絡上並沒有相應的解決方案,於是我開始自己摸索的解決這個問題。 問題狀況大致是這樣的,在數據庫中存在一個表,當我在ja

javascriptphp使用aes進行加密/解密

cbc base scrip == pad encode ini echo script javascript:a. 下載: npm install crypto-js b. 代碼: var CryptoJS = require("crypto-js"); // 加密

使用JNI在JAVA和C++之間進行互動操作

原文連結地址: https://library.vuforia.com/articles/Solution/How-To-Communicate-Between-Java-and-C-using-the-JNI 本文旨在描述如何使用JNI(Java Native Interface)實現JA

幾張圖為你分析HTML、JSPHP之間的資料傳輸

在電商網站搭建過程中,前端經常會向後端請求資料,有時候通過HTML、JS和PHP檔案的處理來實現資料的連通。通常情況下,使用者在HTML中做關鍵字操作,JS對提交的表單進行資料處理,向後端發起ajax請求對應PHP的api介面,PHP在接收到資料後對連線伺服器,伺服器再通過PHP中的SQL語句對資料

Android中JNI使用詳解(4)---JavaC之間資料型別轉換

Jni中基本型別轉換對應的表格 Java型別 本地型別 說明 boolean jboolean 無符號,8位 byte jbyte

http server原理,nginxphp之間是如何工作的

Nginx (“engine x”) 是一個高效能的 HTTP 和 反向代理 伺服器,也是一個 IMAP/POP3/SMTP 代理伺服器。 Nginx 是由 Igor Sysoev 為俄羅斯訪問量第二的 Rambler.ru 站點開發的,第一個公開版本0.1.0釋出於2004年10月4日。其將原始碼

python Crypto AES-256-ECB PHP之間完成加解密

openss 固定 base aes ecb 世界 and brush mode AES算法描述:  首先AES是一種對稱加密算法。 算法特點:   1、AES的區塊長度固定為128 比特(16字節)。    # 因此在加密前需要對待加密字符串進行填充,長度填充至128bi

【Android】AppApp之間互動

今天剛好公司有一個Android無介面外掛化的列印App需求,隨便在這裡寫下一點心得 知識點分析: 無介面 可比本公司的其他App任意呼叫 隱藏App的啟動圖示 一. 外掛App: (一)修改ac

iOS開發 RSA加密解密後臺之間的雙向加密詳解

序言 因為專案中需要用到RSA加密,剛開始也是有點亂,這兩天也整理的差不多了,希望能幫到大家。 這次先上程式碼,我想大部分人肯定是著急解決問題,所以不要廢話太多。 iOS端 後臺是PHP,給我了一段公鑰和他用私鑰加密後的base64編碼,讓我先解一下,看看能否解出(請先不要糾結為什麼給我公鑰解密,公鑰私鑰都

如何用mybatis資料庫之間進行互動

如何使用Mybatis連線數庫 簡介   使用Mybatis連線資料庫,使用Mybatis 建立一個工作空間,建立工程 一、  配置環境 1、      開啟工程pom.xml配置檔案,配置資訊 如下 2、 

html表單PHP最簡單互動

html表單部分 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>表單聯合PHP進行互動</titl

java和python之間資料互動,不同語言間傳輸資料:使用RabbitMQ

java和python之間資料互動,不同語言間傳輸資料:使用RabbitMQ 問題描述 方法 方法一:java直接執行python指令碼.py檔案,把資料放到引數裡傳遞 方法二:通過第三方檔案作為中間站 方法三:使用訊息佇列的方式,

JAVAJSP之間如何傳值

JAVA後臺 關於如何從後臺傳遞資訊在jsp前端頁面顯示首先,博主今天為了將後臺的資訊傳遞到前臺,廢了不少的腦筋,一開始,博主採用了request.setAttribute()的方法,來實現的,具體程式碼如下:在servlet中,寫上: request.setAttribut

qmlc++之間互動

學習qml的筆記,Qt Quick核心程式設計的一個例子:1、實現一個類(從object以及派生類中繼承而來),使用Q_OBJECT巨集。 #ifndef COLORMAKER_H #define COLORMAKER_H #include <QObject>

javaphp時間戳轉換

總結一下java 時間戳和PHP時間戳 的轉換問題:  由於精度不同,導致長度不一致,直接轉換錯誤。  JAVA時間戳長度是13位,如:1294890876859  PHP時間戳長度是10位, 如:1294890859 主要最後三位的不同,JAVA時間戳在PHP中使用,

JavaScriptAndroid之間互動

javascript直接呼叫Android中的方法,例子:webview直接載入html,html中的javascript呼叫android端的方法。此例子可以有助於android開發者開發圖表類的專案,圖表不需要原生程式碼,只需用指令碼實現。圖表的指令碼生成可以參考:htt

Emoji表情圖示在iOSPHP之間通訊及MySQL儲存

在某個 iOS 專案中,需要一個伺服器來儲存一些使用者資料,例如使用者資訊、評論等,我們的伺服器端使用了 PHP+MySQL 的搭配。在測試過程中我們發現,使用者在 iOS 端裡輸入了 Emoji 表情提交到伺服器以後,PHP 無法在 MySQL 資料庫里正確保存,會遇到亂碼的問題。下面是原因探析和解決辦