簡體   English   中英

php - 在mysql中存儲加密的字符串

[英]php - storing encrypted string in mysql

我需要存儲客戶的駕駛執照#(大部分時間)(或個人ID),因此當他們來挑選他們的產品時,他們可以根據他們的身份識別自己。 這通常是我國各處處理的方式(不幸的是)。 但是,我想將這個#的加密存儲在mysql中。 我現在可以使用AES_ENCRYPT ,但是,我的問題是,如果我硬編碼$key ,那么獲得訪問服務器的攻擊者可以輕松解密所有擁有密鑰的字段。 我怎么處理這個?

我的想法是使用openssl_public_encrypt並擁有公鑰和私鑰,但不知道如何實現它。 (任何有用的解釋鏈接?)可能是非對稱密鑰RSA?

如果需要,我可以使用幾種物理服務器。

任何幫助將不勝感激。

為什么需要非對稱地加密這些許可證?

  1. 驗證用戶是否提供有效許可證。
  2. sha1許可證並保存到數據庫。
  3. 當您查找許可證時,請輸入用戶輸入並檢查其是否匹配。

我在傳遞過程中實現這一目標的方法並不是存儲完整的細節。

您需要的數字將被散列。 更多 - 其中一些值的集合已經以您選擇的方式加密。

您可以使用有關用戶的一些相關信息。 說出用戶的電子郵件或您生成的ID號。

當用戶驗證說“12345678”時,您已經將1458的哈希值設置為“$£%$ dfovm $£$”,其中包含部分電子郵件。

這樣,如果有人可以獲得訪問權限,他們就無法檢索所有用戶號碼。 此外,如果他們以某種方式將字符串的解密版本拼湊在一起 - 它將是許可證號碼和其他一些信息的噱頭。

一旦攻擊者可以訪問您的服務器,他們就可以運行您的代碼。 因此,您的服務器必須解密為純文本才能使用,您的攻擊者也可以。 如上所述,您最好的選擇是以與密碼相同的方式加密ID,單向,然后加密客戶輸入並進行比較,這樣即使您無法訪問初始ID。

暫無
暫無

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

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