phprsa加密分段
1. 誰知道公鑰私鑰加密簽名的php代碼怎麼寫公鑰格式為cer,私鑰格式為pfx。
你好,PHP對RSA加密沒有原生支持,需要打開openssl擴展,而且還得知道伺服器的證書格式,之類的參數,不然沒法對上簽名,PHP的RAS加密解密代碼支付寶的SDK裡面有,例子可以參考。再找關於RSA加密的資料,看完你就明白流程了,如果你要跟java的jks證書對接的話,貌似沒法實現。謝謝。
2. php使用RSA加密後亂碼
應該使用base64_encode加密,解密才用decode。
3. php CA加密和JAVA通信
PHP的RSA簽名和驗簽方法
簽名方法
openssl_sign($msg, $sign, $ key, OPENSSL_ALGO_SHA1);
$msg:要簽名的字元串。
$sign:做好簽名字元串。
不可以寫成 $sign = openssl_sign($msg, $sign, $ key, OPENSSL_ALGO_SHA1);
$ key:密鑰,密鑰格式,必須為rsa_private_key.pem的格式。
OPENSSL_ALGO_SHA1:密鑰演算法,如果與Java等交互,必須相互配對。
2. 驗簽方法
$result= openssl_verify($msg, $sign, $key);
$msg:簽名的原字元串。
$sign:簽名字元串。
$ key:密鑰,密鑰格式,必須為rsa_private_key.pem的格式。
$result:驗簽結果;為1時,驗簽正確;其餘失敗。
4. php中RSA加密,明文超長,需要分段加密該怎麼做
這方面的話我不是很了解,一般來說,加密分為兩個部分,一個是非對稱加密,一個是對稱加密,使用對稱加密加密正文信息,使用非對稱加密加密對稱加密的密鑰,然後發送加密數據(消息摘要和數字簽名就不討論了),這是正規的數據加密策略,對稱加密默認支持大數據分段加密策略,你只需要從介面中完成加密即可,而且對稱加密速度比非對稱加密快很多,如果你需要使用這個策略建議使用AES。
如果你不願意使用對稱加密,只願意使用AES加密,那你就必須喪失速度了,而且自己處理分段加密,因為RSA加密通常是117個位元組就要分段(這個長度可能和密鑰長度有關,我是用的介面是117),你需要自己把數據變成N個117位元組的數據段來完成加密,解密也需要自己完成位元組拼裝。詳細還是建議你去後盾人平台去看看視頻教學吧,那裡面有的,講的很清楚。
5. php有什麼加密出來比較短的加密方法
一般來說,加密分為兩個部分,一個是非對稱加密,一個是對稱加密,使用對稱加密加密正文信息,使用非對稱加密加密對稱加密的密鑰,然後發送加密數據(消息摘要和數字簽名就不討論了),這是正規的數據加密策略,對稱加密默認支持大數據分段加密策略,你只需要從介面中完成加密即可,而且對稱加密速度比非對稱加密快很多,如果你需要使用這個策略建議使用AES。如果你不願意使用對稱加密,只願意使用AES加密,那你就必須喪失速度了,而且自己處理分段加密,因為RSA加密通常是117個位元組就要分段(這個長度可能和密鑰長度有關,我是用的介面是117),你需要自己把數據變成N個117位元組的數據段來完成加密,解密也需要自己完成位元組拼裝。
6. PHP 加密:AES & RSA
最近兩年一直從事與金融相關項目的開發與維護。但是,關於 PHP 加密解密的最佳實踐,網上沒有人給出一個完美的總結。恰逢最近看了《圖解密碼技術》一書,對 PHP 加解密有了更深刻的認識。
為了避免各位看枯燥的文字理論,開篇我就把總結給出:
一、對稱加密
對稱加密的特點是加解密速度快,加密後的密文強度目前還沒有硬解的可能性。但是,在未來隨著計算機性能的提升有可能會出現被破解的可能性。
對稱加密的缺點也很明顯。對稱加密的加密過程與解密過程使用的是同一把密鑰。一旦泄漏密鑰,加密就失去了任何意義。
根據《圖解密碼技術》一書的推薦,對稱加密目前推薦使用 AES。在 PHP 當中要實現 AES 加解密,是使用 openssl 擴展來實現。所以,請確保你的 PHP 已經開啟了 openssl 擴展。
可以通過如下方式檢測:
或者如下方式檢測:
AES 的加密模式屬於分組密碼模式。所謂分組密碼,是加密時把明文按照固定的長度分組,然後再進行加密。當然,細節之處很很多不同。AES 分組模式有多種:ECB、CBC、CFB、OFB、CTR 五種分組模式。目前優先推薦使用 CBC 模式。
如果使用 CBC 模式,那麼在加密的時候,就需要一個前置的加密向量 IV。當初博主在使用 AES 來加密的時候,就很奇怪一個對稱加密為何要這個向量。因為,在博主寒冰的潛意識里,對稱加密只需要一個密鑰就 Ok 了。沒想到 AES 加密還有多種模式,而這個 CBC 模式恰恰就需要一個這樣的向量值。關於這個向量大家可以在網上查閱相關的資料。這個東西非常重要,也非常好理解。
關於 PHP AES 加解密會用到的相關方法:
AES 支持三種強度:128、192、256。128 位的強度最低,但是,加密解密速度較快。256 位強度最高,但是,加密解密速度最低。所以,大家根據自己系統的重要程度選擇使用對應強度。通常普通的金融項目使用 192 位完整夠用了。頂級的就用 256 位。其他的就用 128 位吧。
二、非對稱加密
非對稱加密是指公鑰加密私鑰解密,私鑰加密公鑰解密的演算法。非對稱加密的演算法有很多。《圖解密碼技術》一書推薦使用 RSA 演算法。它使用起來也非常簡單。
要使用 RSA 演算法。首先,我們必須生成一對公鑰私鑰。其實生成公鑰私鑰很簡單。
在 Linux 系統,直接使用如下命令生成:
此命令會生 ~/.ssh/ 目錄下生成兩個文件:
id_rsa 是私鑰, is_rsa.pub 是公鑰。
關於 PHP RSA 加解密會用到的相關方法:
以上就是關於在 PHP 項目開發中,我們使用的加密解密演算法的一個總結。博主寒冰在總結過程中難免會有不足之處,還請大家指正!謝謝!
7. phprsa解密對性能的影響
phprsa解密對性能的影野飢響是性能大幅度模升降低。RSA演算法屬於非對稱加密演算法,非對稱加密頌碼返演算法需要兩個秘鑰:公開密鑰(publickey)和私有秘鑰(privatekey)。
8. 如何用php做RSA用公鑰加密,只需要加密,已有明文+公鑰
functionrsa_encode($pwd){
$publicstr=file_get_contents('/path/to/public.key');
$publickey=openssl_pkey_get_public($publicstr);//讀取公鑰
$r=openssl_public_encrypt($pwd,$encrypted,$publickey);
if($r){
return$encrypted
}
returnfalse;
}