- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在使用 CryptoSwift 来加密我将在 URL 中传递的数据。为此,我需要将数据片段的数据类型设置为 String 以连接到 NSURL 请求中。数据加密后以字节为单位输出。如何将字节转换为无意义的字符串以传递 PHP 脚本可以解密的 URL?
我能够加密成 UInt8,但是我认为不可能通过 URL 将它传递给 PHP 脚本,所以我需要将它变成一个字符串。
代码:
let string = "hello"
let input: [UInt8] = Array(string.utf8)
let key: [UInt8] = [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
let iv: [UInt8] = AES.randomIV(AES.blockSize)
do {
let encrypted: [UInt8] = try AES(key: key, iv: iv, blockMode: .CBC).encrypt(input, padding: PKCS7())
print("Encrypted bytes: \(encrypted)")
let str = String(bytes: encrypted, encoding: NSUTF8StringEncoding)
print("String of encrypted data: \(str)") // prints a nil value
} catch AES.Error.BlockSizeExceeded {
print("Block size exceeded")
} catch {
print("Error encrypting or decrypting data")
}
非常感谢您的帮助,
最佳答案
不要使用 CryptoSwift,它既不快(比 Common Crypto 慢 500-1000 倍)也不安全(它缺乏实质性审查)。
加密数据与随机数据字节无法区分。
并非所有数据数组都可以转换为任何编码的字符串。有许多数据字节没有可打印的表示或字符串编码中的任何表示。这就是为什么原始数据字节通常被编码为 Base64 或十六进制字符串。
关于swift - 如何在 AES CryptoSwift 密码后将字节转换为 NSString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34473630/
我正在使用 cryptoswift 来解密一个字符串 let decrypted2 = try AES(key: "35%6HyBW", iv: "erewf^%", blockMode: .CBC
所以我尝试从文件中获取散列。使用 CryptoSwift图书馆。truth 是带有我从 VLC 网站获得的散列的变量,所以这应该是真的。但是,我生成的散列与我知道的散列不同。 我错过了哪一步? 代码:
我正在使用 Cryptoswift 框架进行加密和解密。我正在另一个 Xcode 项目中使用 Xcode 项目。尽管主项目使用了 Pod,但子项目无法访问 Cryptoswift 框架。除此之外,我还
当我将 swift 2.3 转换为 swift 3 时发生此错误。我做了 Product->Clean->Build,但它在我的项目中不起作用。如何解决这个错误。请帮助我。 最佳答案 类似于 Dim
加密“ secret ”的字符串 加密后“64c2VjcmV0” 这是正常工作的代码 let inputNSData: NSData = input.dataUsingEncoding(NSU
我正在尝试使用 cocoapods 来安装 crypto swift,但在 pod 文件中放置什么内容时遇到了问题。 我已经尝试过: pod 'CryptoSwift', :git => "https
我在将 Java 代码转换为 Swift 以使用 CBC 进行 AES 加密时遇到问题。这是 Java 代码: public static String decryptOAuthClientSecre
我尝试加密密码时出错。我找不到加密失败的原因。有什么问题吗? 加密货币 import CryptoSwift struct Crypto { let keyData : String!
我正在开发 swift 项目,该项目正在扫描 QR 码并获取需要解密的加密 AES-128 数据。 我正在使用一个名为 CryptoSwift 的框架。 我有来自保存加密数据的二维码的 key 和数据
我在解密 AES128CBC 加密的 JSON 时遇到此错误: assertion failed: Block size and Initialization Vector must be the s
我很难让 CryptoSwift 与 Ruby 的 OpenSSL AES 完美搭配 我的 Swift 代码: let key = ("12345678901234567890123456789012
我正在使用 CryptoSwift 来加密我将在 URL 中传递的数据。为此,我需要将数据片段的数据类型设置为 String 以连接到 NSURL 请求中。数据加密后以字节为单位输出。如何将字节转换为
(Xcode 8、 swift 3) 使用 CryptoSwift 库,我想加密一个字符串并将其存储在核心数据中,出于某种原因,尽管密文具有 128 个值,但密文结果为 nil: let aes =
我正在使用 CryptoSwift 1.4.1、iOS 15.2、PyCryptodome 3.12.0 和 XCode 13.2.1 来加密我通过 BLE 发送到 Raspberry Pi Linu
我正在尝试使用 Cryptoswift 框架在 Swift 中加密文件。我做到了,但是对于像 mp4、mp3 这样有点重的文件,速度非常慢。如果我以错误的方式实现或者算法是这样的,我真的不知道发生了什
我正在尝试加密一个字符串,然后使用 CryptoSwift 将其解密回来.这是代码: let key: [UInt8] = [0x2b,0x7e,0x15,0x16,0x28,0xae,0xd
我想使用 CryptoSwift 库将此 JavaScript HMAC 代码转换为 Swift。 var crypto = require("crypto"); var currentDate =
我使用 CryptoSwift 加密了一些数据,然后使用 Node.js 加密了相同的数据。但是结果不一样。问了作者,他说不是bug。 我不知道我哪里弄错了。以下是我如何使用 CryptoSwift
我在 CryptoSwift-API (krzyzanowskim) 上遇到问题,同时将 AES128 与 CTR-Mode 和我的测试函数一起使用(nullArrayBugTest()) 在特定计数
我想通过 CryptoSwift 库使用 AES 加密/解密。我使用了一个使用 pod 的库。以下是我使用的 pods 。pod 'CryptoSwift', :git => "https://git
我是一名优秀的程序员,十分优秀!