以下用個人主密碼=password,網站識別碼=google,密碼長度=16為例說明密碼的產生流程。
- sha1雜湊器,如:
http://www.tools4noobs.com/online_php_functions/sha1/ - 支援Hex輸入的Base64編碼器,如:
http://tomeko.net/online_tools/hex_to_base64.php
- 設定個人主密碼M
M = password - 對M取sha1,得到sM
sM = 0x5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8 - 將sM以")!@#$%^&*(ABCDEF"編碼,得到Mb
(也就是在標準鍵盤上按著Shift將16進位編碼照著打一遍)
Mb = %BAA^!E$C(B(#F#F)^*@@%)B^CF*##!B&EE^*FD* - 對Mb取sha1,得到sMb
sMb = 0xae9a64452aec3535a5d6114406417a31bb37ae7b - 將sMb以")!@#$%^&*(ABCDEF"編碼,得到Mc
Mc = AE(A^$$%@AEC#%#%A%D^!!$$)^$!&A#!BB#&AE&B - 將Mc接上網站識別碼S,得到X
X = AE(A^$$%@AEC#%#%A%D^!!$$)^$!&A#!BB#&AE&Bgoogle - 對X取sha1,得到sX
sX = 0xca82058e6197229178510908de8e6e7aa132a3f5 - 將sX以[A-Z][a-z][0-9][._]編碼,得到P
(快速的作法是在最前補0x00後以Base64編碼,再將結果去掉第一個字母A)
P = MqCBY5hlyKReFEJCN6ObnqhMqP1
P = substr(
base64(0x00ca82058e6197229178510908de8e6e7aa132a3f5), 1)
= substr(AMqCBY5hlyKReFEJCN6ObnqhMqP1, 1)
= MqCBY5hlyKReFEJCN6ObnqhMqP1 - 從前方由P取出密碼長度的字元數,得到最終密碼
密碼 = MqCBY5hlyKReFEJC
沒有留言:
張貼留言