-
當前位置:首頁 > 創(chuàng)意學院 > 技術(shù) > 專題列表 > 正文
pbkdf2(PBKDF2加密)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于pbkdf2的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準,寫出的就越詳細,有微信小程序端、在線網(wǎng)頁版、PC客戶端
官網(wǎng):https://ai.de1919.com。
創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務客戶遍布全球各地,如需了解SEO相關(guān)業(yè)務請撥打電話175-8598-2043,或添加微信:1454722008
本文目錄:
一、BIP39:助記詞
BIP39是SEED的生成算法.如果你用過比特幣錢包應用,很可能它會為你生成一個助記符。這樣的助記符可以用來替代私鑰,并且可以被用于生成私鑰。用“有意義的”助記詞代替無意義的數(shù)字,也就是“密語種子”,密語種子更加便于記憶和抄錄,它可以轉(zhuǎn)化成適用于BIP32的“數(shù)字種子”。構(gòu)造Script.ScriptType.P2PKH類型的鑰匙串KeyChainGroup
DeterministicSeed 第三個參數(shù)是密碼,默認為空,試著自己加了密碼也ok,總之不影響隨機熵的創(chuàng)建。從SecureRandom創(chuàng)建隨機熵
對string集合進行加鹽操作,salt隨機,用PBKDF2SHA512加密算法加密.
PBKDF2SHA512 助記詞+鹽進行2048次sha256每次產(chǎn)生的seed都是不同的!
https://iancoleman.io/bip39/?#english 翻墻查看,把 mnemonic code 記錄下來好好保存,就會是一個冷錢包(指不連網(wǎng)路的錢包,所以安全很多)??梢允褂卯a(chǎn)生出來的 address 收送錢。
二、助記詞的生成原理
別人的庫多半都是只實現(xiàn)了部分功能,所以fork了人家的源碼,在此基礎(chǔ)上增加了實用功能,保證通過助記詞恢復和對助記詞的校驗,避免了因隨意輸入助記詞便可恢復成私鑰的過程。原作者的實現(xiàn)并非十分高效,但接口很直觀,該有的功能很全面,做法有很多,開源能使它更好。僅當學習。
https://github.com/alphaqiu/mnemonic
BIP39是助記詞標準的實現(xiàn),助記詞是一個隨機數(shù)的字序列,用來作為種子產(chǎn)生一個確定性的錢包。單詞序列足以重新創(chuàng)建種子,然后再創(chuàng)建錢包和所有派生的密鑰。一個實現(xiàn)帶有助記詞的確定性錢包應用程序在首次創(chuàng)建錢包時將向用戶顯示12到24個單詞的序列。該單詞序列是錢包備份,可用于恢復和重新創(chuàng)建相同或任何兼容的錢包應用程序中的所有密鑰。記憶單詞使用戶更容易備份錢包,因為與隨機數(shù)字序列相比,它們易于閱讀和正確地轉(zhuǎn)錄。所有的助記詞在這里可以查看:助記詞詞庫。
使用BIP39中定義的標準化過程,錢包自動生成助記詞。錢包從一個熵源開始,添加一個校驗和,然后將熵映射到一個單詞列表,具體步驟如下:
下表描述了初始熵長度(ENT),校驗和長度(CS)和單詞中生成的助記詞(MS)的長度之間的關(guān)系。
用戶可以決定用密碼來保護他們的助記符。如果不存在密碼短語,則使用空字符串“”。
助記詞代表長度為128到256位的熵。然后使用熵通過使用密鑰擴展函數(shù)PBKDF2來導出更長(512位)的種子。然后,所產(chǎn)生的種子用于構(gòu)建確定性錢包并獲得其密鑰。
密鑰擴展功能有兩個參數(shù):助記詞和鹽(salt)。密鑰擴展功能中的鹽的目的是使得難以構(gòu)建能夠進行暴力攻擊的查找表。在BIP-39標準中,salt具有另一個目的 - 它允許引入密碼短語作為保護種子的額外安全因子。
三、1. Crypto 加密算法
Hash,音譯為哈希,也叫散列函數(shù)、摘要算法。它是把任意長度的輸入,通過散列算法變換成固定長度的輸出,該輸出就是散列值。
常用的哈希算法有:
MD5 信息摘要算法 (MD5 Message-Digest Algorithm),一種被廣泛使用的密碼散列函數(shù),可以產(chǎn)生出一個128位(16字節(jié))的散列值,用于確保信息傳輸完整一致。
SHA (Secure Hash Algorithm),即安全散列算法。散列算法又稱雜湊算法或哈希算法,能將一定長度的消息計算出固定長度的字符串(又稱消息摘要)。SHA包含5個算法,分別是SHA-1、SHA-224、SHA-256、SHA-384和SHA-512,后四者并稱為SHA-2。
循環(huán)冗余校驗 (Cyclic redundancy check,通稱“ CRC ”)是一種根據(jù)網(wǎng)絡數(shù)據(jù)包或電腦文件等數(shù)據(jù)產(chǎn)生簡短固定位數(shù)校驗碼的一種散列函數(shù),主要用來檢測或校驗數(shù)據(jù)傳輸或者保存后可能出現(xiàn)的錯誤。生成的數(shù)字在傳輸或者存儲之前計算出來并且附加到數(shù)據(jù)后面,然后接收方進行檢驗確定數(shù)據(jù)是否發(fā)生變化。一般來說,循環(huán)冗余校驗的值都是32位的整數(shù)。
AES ,高級加密標準(Advanced Encryption Standard),又稱 Rijndael 加密法,是美國聯(lián)邦政府采用的一種區(qū)塊加密標準。
MAC ,消息認證碼(帶密鑰的 Hash 函數(shù)):密碼學中,通信實體雙方使用的一種驗證機制,保證消息數(shù)據(jù)完整性的一種工具。構(gòu)造方法由 M.Bellare 提出,安全性依賴于 Hash 函數(shù),故也稱帶密鑰的 Hash 函數(shù)。消息認證碼是基于密鑰和消息摘要所獲得的一個值,可用于數(shù)據(jù)源發(fā)認證和完整性校驗。
PBKDF2 (Password-Based Key Derivation Function)是一個用來導出密鑰的函數(shù),常用于生成加密的密碼。它的基本原理是通過一個偽隨機函數(shù)(例如 HMAC 函數(shù)),把明文和一個鹽值作為輸入?yún)?shù),然后重復進行運算,并最終產(chǎn)生密鑰。如果重復的次數(shù)足夠大,綠色的成本就會變得很高。而鹽值的添加也會增加“彩虹表”攻擊的難度。
在需要使用 CryptoSwift 的地方將其 import 進來:
歡迎留言討論,有錯誤請指出,謝謝!
Swift 開發(fā)學習交流,聯(lián)系我 QQ:3500229193 入群,請備注“Swift 學習”!
四、密碼格式是什么?
這樣問不好回答,先來說明密碼本身
1:純數(shù)字密碼(這個好多,銀行的,手機的)
2:字母加數(shù)字密碼(這個也好多,好多網(wǎng)站后臺)
3:字母加數(shù)字加特殊符號密碼(這個也好多,好多網(wǎng)站后臺)
4:手勢密碼(網(wǎng)絡或手機)
5:指紋聲音臉密碼(大多門禁,也有手機)
6:定位密碼(大多智能家居,這些也算密碼)
7:隨機密碼(銀行,衛(wèi)星,軍事等等)
密碼加密方式
1:明文保存
2:對稱加密算法來保存
3:MD5、SHA1等單向HASH算法
4:PBKDF2算法
5:bcrypt、scrypt等算
6:以上各種組合
7:矩陣密碼
怕說不完,太多了。
以上就是關(guān)于pbkdf2相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。
推薦閱讀:
pbf轉(zhuǎn)百度云(百度網(wǎng)盤pdf轉(zhuǎn)epub格式)
chat.openai拒絕訪問(cannot open clipboard-拒絕訪問)
酒店ota平臺的運作和管理(酒店客控系統(tǒng)哪些品牌好)
杭州美術(shù)館怎么預約(杭州美術(shù)館怎么預約參觀)