node.js - 使用 swift 5 的 AES256 问题

标签 node.js swift encryption aes node-crypto

我使用带有 pkc7 填充的 AES256 算法 CBC 模式。我在 Node.js 中有后端。但获取前 12 个随机字符。

这是我的快速代码:

    func encrypt(data: Data, key: Data, iv: Data) throws -> Data? {

        // Output buffer (with padding)
        let outputLength = data.count + kCCBlockSizeAES128

        var outputBuffer = Array<UInt8>(repeating: 0,
                                        count: outputLength)
        //var outputBuffer: [UInt8] = []
        var numBytesEncrypted = 0
        let status = CCCrypt(CCOperation(kCCEncrypt),
                             CCAlgorithm(kCCAlgorithmAES),
                             CCOptions(kCCOptionPKCS7Padding),
                             Array(key),
                             kCCKeySizeAES256,
                             Array(iv),
                             Array(data),
                             data.count,
                             &outputBuffer,
                             outputLength,
                             &numBytesEncrypted)

        guard status == kCCSuccess else { return nil }

        let outputBytes = iv + outputBuffer.prefix(numBytesEncrypted)

        return Data(bytes: outputBytes)
    }

没有padding怎么办?或者后端应该做什么?

enter image description here

最佳答案

您可以在要共享的负载之前和之后使用标签。该标签将是您的标题。

<tag>string</tag>

因此,如果您加密,您将获得前 12 个随机字节

所以你需要忽略 **<tag>...</tag>** 之间的文本。

关于node.js - 使用 swift 5 的 AES256 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56882372/

相关文章:

mysql - 为订阅系统设计一个作业调度程序

java - 在计数器模式下使用 AES 生成一次性 key

javascript - 管理 package.json 的简单方法

mysql - 性能套接字 nodejs + mysql

node.js - 未从 Slack Slash Commands API 接收任何数据

security - 软件安全模块/工具包替代 HSM 用于开发加密功能

php - 哪种加密算法最适合加密 cookie?

带有嵌套函数的 Swift 简洁代码

ios - 使用 Swift 2 的 HJImagesToVideo

ios - 为什么我不能使用 `isCalculating` 属性来等待计算请求完成