如何计算 RAW 中的字节数以生成 16、24、32 字节以用于 AES 加密
How to count the bytes in RAW to make 16,24,32 bytes to use with AES encryption
我正在尝试制作一个 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 - The key as a 16, 24 or 32 byte raw vector for AES-128, AES-192 or AES-256 respectively.
这意味着如果它不完全是 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")
Error in AES(as.raw(1:17), mode = "ECB") :
AES only supports 16, 24 and 32 byte keys
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
我正在尝试制作一个 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 - The key as a 16, 24 or 32 byte raw vector for AES-128, AES-192 or AES-256 respectively.
这意味着如果它不完全是 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")
Error in AES(as.raw(1:17), mode = "ECB") : AES only supports 16, 24 and 32 byte keys
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