我正在使用Heimdall
https://github.com/henrinormak/Heimdall
用于生成我的1024位RSA密钥并加密消息:
let heimdall = Heimdall(publicTag: publicTag, publicKeyData: data)
当我使用utf8-encode和base64-encode时,我将其传递给加密方法:
let utf8Encoded = self.mystring.data(using: String.Encoding.utf8)!
let base64Encoded = utf8Encoded.base64EncodedData()
let encrypted = heimdall.encrypt(base64Encoded)
print("encrypted \(encrypted!)") // -> 160 bytes !! why not 128
加密部分应为128字节而不是160字节。
有人能帮助我到那儿吗?
如何继续生成1024位rsa密钥并使用这些密钥加密消息以最终得到128字节数组?
谢谢和问候!!
答案 0 :(得分:1)
来自Heimdall文档:Note on encryption/decryption:
构建有效负载,包含加密密钥,然后是加密消息。
然后这是Base64编码,将长度增加1/3。
因此输出是(aes密钥+加密数据长度+填充)Base64编码。