0
是否有任何理由選擇粗粒度的粗粒度API,尤其是加密處理?細粒度粗粒度加密API
粗:
AESDecrypt(pad_type,
mode_type,
mode_data, /* CTR or IV */
ciphertext,
plaintext)
精細:
AES128_ECB_Decrypt(ciphertext, plaintext)
AES128_CBC_PKCS5_Decrypt(iv, ciphertext, plaintext)
AES128_CBC_NOPAD_Decrypt(iv, ciphertext, plaintext)
AES256_CTR_Decrypt(ctr, ciphertext, plaintext)
您的用戶可能是密碼學技術熟練的人嗎?給非技術用戶太多的選擇是加密中的一件壞事 - 他們會犯錯誤。通過限制選擇,例如不提供ECB模式,可以幫助用戶避免錯誤。 – rossum
這是一個好點,但有點正交於這個問題。它也只適用於創建自己協議的人員,而不是實施現有協議的人員。有具體的選擇(功能或參數)的警告良好的文件可以在這裏幫助。 –
Skillz真的不是一個擔心。我們正在抽象我們的庫加密調用,以允許一個搬運工添加他們自己的定製庫。我們想知道這樣一個搬運工是否有接口的副作用。 – Ronoc