簡體   English   中英

PHP中的公鑰/私鑰相似系統

[英]Public/private key alike system in PHP

對於我的自動登錄腳本,我正在考慮實現以下內容:

  • 用戶獲得存儲在Cookie中的某種個人“公鑰”
  • 因為我不想在數據庫中保存完全相同的密鑰,所以我想創建一個匹配的“私有密鑰”
  • 當檢測到cookie時,將檢索存儲在數據庫中的密鑰,並檢查2個密鑰之間的公共/私有關系

什么是在沒有openSSL等的情況下在php中實現此目的的最佳方法

這就是我現在所擁有的:

$public = hash($hash_algorithm, uniqid(rand()));
$private = hash_hmac($hash_algorithm, $public, $encryption_key);

並驗證:

$check = hash_hmac($hash_algorithm, $public, $encryption_key);
return $check == $private;

$ encryption_key是來自配置文件的隨機密鑰。

我在想這太簡單還是足夠好? 當然,使用密鑰時,會像這里的原理一樣生成一個新密鑰: http : //jaspan.com/improved_persistent_login_cookie_best_practice

盡管完全有可能創建僅使用對稱密鑰密碼原語的公共密鑰密碼系統(請參閱: SPHINCS ),但您可能不應該推出自己的設計並期望它在這里是安全的。

什么是在沒有openSSL等的情況下在php中實現此目的的最佳方法

在2018年,答案是:“ with libsodium ”。 但是,當您問這個問題時,那實際上不是一個選擇。

但是本着問題的精神: 為您提供非對稱密碼或重新發明輪子的外部密碼庫沒有解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM