操作教學
如何在寄出敏感內容前先加密
把密碼清單、API 金鑰或一小段機密備註,以純文字寄出電子郵件,代表任何攔截這封信的人,或後續能存取信箱的任何人,都能直接讀到內容。這篇指南教你產生一組強密碼,在本機用 AES-256-GCM 加密內容,這樣真正經過你電子郵件或聊天軟體傳送的,是一段無法閱讀的密文,而不是一份放在別人伺服器上、等著被掃描或複製的檔案。
逐步教學
- 打開密碼產生器,把長度設為至少 20 個字元,啟用每一種字元類別,產生一組密碼。先複製到暫存的地方;你會透過另一個和加密內容不同的管道,把這組密碼告訴收件人,例如打電話,或用你們原本就用來聊別的事情的通訊軟體。
- 打開 AES 加密工具,把要保護的文字(密碼清單的內容、API 金鑰、設定檔,或任何簡短備註)貼進輸入欄位,貼上步驟 1 產生的密碼,然後點擊「加密」。工具會用 PBKDF2 從你的密碼推導出金鑰,再以 AES-256-GCM 加密,兩者都在你的瀏覽器中執行,最後回傳一段密文文字。
- 把這段密文直接貼進電子郵件或聊天訊息的內文。不需要任何附件:敏感內容現在以無法閱讀的文字形式傳送。另外,透過前面提到的其他管道,把密碼告訴收件人,並請對方把密文和密碼一起貼進同一個工具,點擊「解密」以還原原始內容。
和把檔案上傳到線上加密服務相比
許多號稱能加密檔案的服務,做法是先把你的檔案收到它們的伺服器上,在那裡加密,再讓你下載結果:原始明文內容會經過一個你無法掌控的系統,就算只有處理所需的幾秒鐘。這裡的 AES 加密工具和密碼產生器完全在你的瀏覽器中執行,使用 Web Crypto API:加密採用 GCM 模式的 AES-256,密碼則以 PBKDF2-SHA-256、31 萬次迭代拉伸成金鑰,每次都使用全新的隨機鹽值與初始化向量。整個過程中,明文、密碼和密文都不會被送到任何伺服器。
分享密碼時,別把保護前功盡棄
加密只有在密碼與密文分開傳送時才有保護作用。把兩者放進同一封信的同一串對話,或在同一個聊天視窗裡緊接著發送,等於把破解所需的一切都交給了讀到這串對話的任何人。真正敏感的內容,請用通話唸出密碼、用和攜帶密文那個管道無關的通訊軟體傳送,或當面交付。之後把密碼存進密碼管理員,而不是留在對話紀錄裡。
這個方法涵蓋不到的地方
AES 加密工具接受的是文字,上限大約 1 MB,而不是直接拖進來的任意二進位檔案。它很適合用在密碼匯出檔、設定檔,或任何你能打開並複製成文字的內容。如果是照片或小型文件這類真正的二進位附件,可以先用 Base64 工具把檔案轉成一段文字,再用同樣的方式加密,記得先手動移除編碼器加在前面的 data-URI 前綴。而且 Base64 會讓資料膨脹大約三分之一,能處理的檔案大小上限會再往下降,所以只適合小檔案。如果目標是保護一份 PDF,用 PDF 密碼工具直接為檔案本身加上真正的密碼會更合適:它加密的是文件本身,而且沒有類似的文字大小限制。
本指南使用的工具
常見問題
密碼或我加密的文字,會不會被送到伺服器?
不會。密碼產生器和 AES 加密工具完全在你的瀏覽器中執行,使用 crypto.getRandomValues 和 Web Crypto API 的 crypto.subtle。你輸入的任何內容,在任何時候都不會被傳送到任何地方;你可以自己打開瀏覽器的開發人員工具,觀察網路面板,親自跑一遍整個流程來確認。
如果密碼弄丟了怎麼辦?
沒有密碼就無法還原密文。沒有復原選項,也沒有後門:PBKDF2 的 31 萬次迭代,讓暴力破解一組真正隨機的 20 字元密碼變得不切實際。請把密碼存進密碼管理員,而不是只留在你分享它的那則對話裡,這樣弄丟那一則訊息,就不會連內容一起丟掉。