r语言 - 如何计算 RAW 中的字节数,以生成 16,24,32 字节以用于 AES 加密



我正在尝试制作一个R代码来执行一些操作来存储敏感数据,直到一切正常为止。 所以,我的问题是密码文本和密钥的字节,如何有效地制作密钥和密码文本的 RAW 16、24 或 32?

library(digest)
key <- charToRaw("keymusbe162432bytes")
aes <- digest::AES(key, mode="ECB")
pass1 <- paste0(pass,"textHereIsNotTheSame")
rawcypher <- charToRaw(pass1)
aes$encrypt(rawcypher)
aes$decrypt(aes$encrypt(raw), raw=FALSE)
Error in digest::AES(key, mode = "ECB") : 
AES only supports 16, 24 and 32 byte keys

根据?AES

key - 密钥分别作为 AES-128、AES-192 或 AES-256 的 16、24 或 32 字节原始向量。

这意味着如果它不正好是 16、24 或 32,将导致错误

AES(as.raw(1:16), mode = "ECB")
#AES cipher object; mode ECB key size 16 
AES(as.raw(1:17), mode = "ECB")

AES(as.raw(1:17( 中的错误,模式 = "ECB"( : AES 仅支持 16、24 和 32 字节密钥

AES(as.raw(1:24), mode = "ECB")
#AES cipher object; mode ECB key size 24 

使用 OP 的代码,我们可以将字符设置为 16 或 24

key <- charToRaw("keymusbe162432bytessssss")
AES(key, mode = 'ECB')
#AES cipher object; mode ECB key size 24 

最新更新