【问题标题】:CryptLib decryption returns wrong valueCryptLib 解密返回错误值
【发布时间】:2017-05-30 09:32:13
【问题描述】:

我在我的 swift 应用程序中使用Cross-Platform-AES 进行 AES 加密/解密。我的加密工作正常。但是当我尝试解密服务返回值时,它并没有给我正确的结果。这里我是如何解密的。

public func decryptStrings(text:String)->String{

    let hashKey=cryptoLib.sha256(key, length: 31)
    let decryptedData = cryptoLib.decrypt(text.data(using: String.Encoding.utf8), key: hashKey, iv: iv)
    let decryptedString=decryptedData?.base64EncodedString()
    print("decryptedString \(decryptedString! as String)")
    return decryptedString!

}

请解释我如何以正确的方式解密它。 谢谢

加密

public func base64Convertion (secretcode:String)->String
{


    let hashKey=cryptoLib.sha256(key, length: 31)
    let encryptedData=cryptoLib.encrypt(secretcode.data(using: String.Encoding.utf8), key: hashKey, iv: iv)
    let encryptedString=encryptedData?.base64EncodedString()
    print("encryptedString \(encryptedString! as String)")


    return encryptedString!

}

【问题讨论】:

  • 请说明您是如何加密的,并让我们知道输入示例。
  • 您应该解码 Base64 编码字符串 解密数据。
  • @MartinR 我在解密之前添加了这一行 let decodedData = Data(base64Encoded: text, options: Data.Base64DecodingOptions()) 但仍然没有给出正确的值
  • 谢谢它现在正在工作
  • @Randi 你能详细说明它是如何为你工作的吗?我仍然遇到解密问题

标签: swift encryption swift3 cryptography


【解决方案1】:

我通过这种方式更改解密方法解决了问题

    public func decryptStrings(text:String)->String{

    let hashKey=cryptoLib.sha256(key, length: 31)
    let decodedData = Data(base64Encoded: text, options: Data.Base64DecodingOptions())
    let decryptedData = cryptoLib.decrypt(decodedData, key: hashKey, iv: iv)
    let decryptedString=String(data: decryptedData!,encoding:String.Encoding.utf8)
    print("decryptedString \(decryptedString!)")
    return decryptedString!

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-09
    • 1970-01-01
    • 1970-01-01
    • 2019-02-03
    • 1970-01-01
    相关资源
    最近更新 更多