Aes
Apple CryptoKit - 了解它的可移植性
我一直在使用 Apple 的CryptoKit(他們努力通過他們的程式語言 Swift 使他們的舊 CommonCrypto 庫更現代和更易於使用)。
我有興趣看看它的便攜性…
他們使用盒子,類似於 libsodium。
有趣的是,它們僅支持 authSym 的 AES-GCM 和 ChaChaPoly,以及 Asym 的少數曲線(最值得注意的是 P-256 和 Curve25519)。
無論如何,我只是嘗試使用從我編寫的調試程式碼中提取的原始輸出手動解密一些測試數據(使用 OpenSSL 或其他),雖然我可以在 Swift 中加密和解密,但我很想測試一下其他地方檢查便攜性。
這是AES-GCM-256,
密鑰 Base64:
nUSfBvhz2HSSo575uCOK3ewTibD7jXsp6f2aPfP3dTo=
隨機數:
m2A7P8c5r7wmczXD
密文:
uEU5otv81AMjG9wCxg==
標籤:
w1lj7fumWRQ7hdJCXwkqCw==
誰能幫我在命令行上使用 OpenSSL 解密?
我一直在嘗試
OpenSSL enc aes-gcm-256 -a -d
但沒有讓它工作(-a 用於 base64,-d 用於解密)……
OpenSSL cli 不支持 CCM 和 GCM 等經過身份驗證的加密模式。其背後的原因是如果重複使用 IV/nonce 會缺乏安全性。使用 OpenSSL cli,IV 管理完全依賴於容易出錯的使用者……為了避免災難性的故障,他們乾脆決定不允許 AEAD。
我想最簡單的方法是做一個簡單的 Python 腳本。我會建議PyCryptodome,您甚至可以找到適合您需要的範例。