Android Firebase数据库中的加密

Android Firebase数据库中的加密,android,encryption,firebase,firebase-security,Android,Encryption,Firebase,Firebase Security,我一直在使用Firebase,并对Firebase数据在Rest状态下的加密和解密感到好奇 在将数据从android设备传输到Firebase DB的过程中,大部分数据都是通过安全通道传输的。但对于处于静止状态的Firebase数据呢?我想对其进行加密,这样关键信息就不会被泄露 我们如何解决Firebase存储的图像、视频和文档加密问题 任何人都能给出一个主意。你可以用它来加密/解密字符串。我还不确定图像,尽管可能有一种方法可以首先将图像转换为字符串,在这种情况下,您可以像往常一样对其进行加密

我一直在使用Firebase,并对Firebase数据在Rest状态下的加密和解密感到好奇

在将数据从android设备传输到Firebase DB的过程中,大部分数据都是通过安全通道传输的。但对于处于静止状态的Firebase数据呢?我想对其进行加密,这样关键信息就不会被泄露

我们如何解决Firebase存储的图像、视频和文档加密问题

任何人都能给出一个主意。

你可以用它来加密/解密字符串。我还不确定图像,尽管可能有一种方法可以首先将图像转换为字符串,在这种情况下,您可以像往常一样对其进行加密

在iOS中,它被称为“RNCryptor”(我相信它们可以很好地协同工作)。例如,这就是我在Swift中所做的(我还没有在Android Java中做过,尽管我认为它看起来应该非常相似):

看见
import UIKit
import RNCryptor

private let encryptKey = "32-chars-alpha-numeric-pass".data(using: .utf8)
private let hmacKey = "Some-other-32-chars-alpha-numeric-pass".data(using: .utf8)

extension String {

    func encryptIt() -> String {
        let data = self.data(using: .utf8)
        let encryptor = RNCryptor.EncryptorV3(encryptionKey: encryptKey!, hmacKey: hmacKey!)
        let ciphertext = encryptor.encrypt(data: data!)
        return ciphertext.base64EncodedString(options: NSData.Base64EncodingOptions.endLineWithCarriageReturn)
    }

    func decryptIt() -> String {
        do {
            let data = Data.init(base64Encoded: self)
            let decryptor = RNCryptor.DecryptorV3(encryptionKey: encryptKey!, hmacKey: hmacKey!)
            let originalData = try decryptor.decrypt(data: data!)
            let base64EncodedData = originalData.base64EncodedData()
            let newData = NSData(base64Encoded: base64EncodedData, options: NSData.Base64DecodingOptions.ignoreUnknownCharacters)!
            let newNSString = NSString(data: newData as Data, encoding: String.Encoding.utf8.rawValue)!
            return newNSString as String
        } catch {
            print(error)
            return ""
        }
    }
}