Swift 3 - AES加密Heimdall - 零填充

时间:2017-11-09 14:09:08

标签: swift encryption key aes rsa

我正在使用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字节数组?

谢谢和问候!!

1 个答案:

答案 0 :(得分:1)

来自Heimdall文档:Note on encryption/decryption
构建有效负载,包含加密密钥,然后是加密消息。
然后这是Base64编码,将长度增加1/3。

因此输出是(aes密钥+加密数据长度+填充)Base64编码。