我嘗試構建加密程式,并且我使用 AES (256/192/128) 從我從 github ( https://github.com/SergeyBel/AES )獲得的實作中,如果密鑰不是這個大小,則有例外。但是我想使用密鑰作為密碼,在 KeePass ( https://keepass.com ) (他們也使用這種演算法加密)我們可以創建不同大小的密碼。我該怎么辦?我必須添加一些填充位元組嗎?或者我必須使用哈希演算法來創建相同大小的密碼?
uj5u.com熱心網友回復:
將密碼短語與對稱加密演算法一起使用時,處理此問題的常用方法是對密碼短語進行散列,然后使用散列中的足夠位元組來構建加密密鑰。這樣做的好處是可以接受任何大小的密碼,而無需填充它(如果太長,也可以修剪它)。
例如,如果您的密碼短語是“password”,則其 SHA256 哈希值(列印為十六進制)為 5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8。然后,您可以使用此散列作為 AES256 的密鑰。對于 AES128,使用哈希的前 16 個位元組(即 5e884898da28047151d0e56f8dc62927)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/324796.html
