*Event-based:
OTP(One Time Password)
*Time-based:
Token
*Static:
Password
*雜湊(Hash):
單向(Hash Function),用於密碼
雜湊之後很難找回來
ex. md5(有點太簡單,會被查表-Rainbow Table)、sha256、sha512
*編碼(Encode):
雙向(Encode, Decode),用於傳輸、轉格式
像是中文變日文,可以變回來
常用在小型大頭貼,把圖轉為文字,如A12Z9+==(base64最後常會出現'==')
ex. base64(大小寫a~Z,0~9,+,=)(編碼較短較常用)、hex(a~f,0~9)(編碼較長較少用)
*加密(Encrypt):
雙向(Encrypt, Decrypt)、用於隱私傳遞訊息
要有鑰匙,AES對稱式加密(同一把鑰匙)、SSL非對稱式加密(公鑰私鑰)
真實密碼通常使用Hash,因為encode和Encrypt都是雙向的,可以被拿到原始密碼。
Hash因為有Rainbow Table的存在,通常會加上Salt一起進去雜湊,更進階如bcrypt進行重複性的雜湊,把hash完的東西再拿去hash