我正在尝试制作一个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