有没有什么理由可以选择粗粒度的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)
答案 0 :(得分:0)
功能(或安全性)没有任何差异。
对于所有版本的只有一个函数,您可以更改算法和模式而无需重新编译(如果您的应用程序从其他地方获取这些值),并且库可以支持新算法而无需更改API
在许多不同的函数版本中,您的应用程序要么被锁定到特定的算法,要么需要大量的if / case语句来支持多个算法。