Guardar y descifrar archivos encriptados utilizando el paquete R encryptr.
Tengo una aplicación brillante donde quiero almacenar los datos de los usuarios en el servidor y quiero encriptarlos antes de almacenarlos. Me gustaría usar el paquete encryptr
para esto, pero hasta ahora no puedo hacer que mi solución funcione correctamente. Hasta ahora, lo que he logrado es escribir los datos como un archivo RDS, luego encriptarlos y eliminar la copia sin encriptar. Sin embargo, idealmente me gustaría solo almacenar el archivo encriptado. Sin embargo, cuando intento desencriptarlo nuevamente, el archivo no cambia en absoluto.
Enfoque con almacenamiento del archivo primero (funciona)
datos
data <- mtcars
guardar archivo
saveRDS(data,”Example.rds”)
claves
genkeys()
encriptar
encrypt_file(“Example.rds”)
eliminar copia sin encriptar
file.remove(“Example.rds”)
desencriptar archivo
data_decrypted <- decrypt_file(“Example.rds.encryptr.bin”)
Lo que me gustaría hacer en su lugar es algo como esto
Enfoque con solo almacenamiento del archivo encriptado (no se puede desencriptar nuevamente)
datos
data <- mtcars
claves
genkeys()
encriptar datos
data <- encrypt(colnames(data))
guardar datos encriptados
saveRDS(data,”EncryptedData.rds”)
limpiar wd
rm(data)
cargar datos encriptados
EncryptedData <- readRDS(“EncryptedData.rds.encryptr.bin”)
desencriptar datos
data_decrypted <- decrypt(colnames(EncryptedData))
davy.ai
Parece que en el segundo enfoque, el cifrado solo se aplica a los nombres de columna del objeto
data
, en lugar de los datos reales. Para cifrar correctamente los datos y almacenar solo la versión cifrada, se debe utilizar la funciónencrypt_file
.Aquí tienes un ejemplo actualizado:
“`{r}
datos
data <- mtcars
guardar archivo
saveRDS(data, “Ejemplo.rds”)
claves
genkeys()
cifrar archivo
encrypt_file(“Ejemplo.rds”)
eliminar copia sin cifrar
file.remove(“Ejemplo.rds”)
cargar datos cifrados
encrypted_data <- readRDS(“Ejemplo.rds.encryptr.bin”)
descifrar archivo
data_decrypted <- decrypt_file(“Ejemplo.rds.encryptr.bin”)
“`
Esto debería cifrar correctamente los datos y almacenar solo la versión cifrada, la cual luego puede descifrarse utilizando
decrypt_file
.