gpt4 book ai didi

objective-c - 如何对 iOS Objective-C 应用程序和 Ruby on Rails 之间的加密数据进行编码?

转载 作者:可可西里 更新时间:2023-11-01 06:18:49 27 4
gpt4 key购买 nike

我正在开发 iOS 和 Ruby on Rails 应用程序,需要将加密的数据从 iOS 应用程序传输到 Ruby on Rails 应用程序。我的挑战是如何以我可以在 Rails 端解码的方式在 Objective-C 中编码数据。我正在使用 example in this SO question作为加密数据的方法,示例代码显示了加密数据的样子:

printf("%s\n", [[plain description] UTF8String]);

创建如下所示的输出:

<3fe47b63 bd9a84ab 30dfb1a4 e409b60f>

我的挑战是我需要找到一种方法,以一种我可以解码的方式将它通过电线传输到 Rails 应用程序,以便与 OpenSSL 代码一起使用,例如:

def decrypt(data)
cipher = OpenSSL::Cipher::Cipher.new('aes-256-cbc')
cipher.decrypt
cipher.key = cipher_key
cipher.iv = cipher_iv
decrypted_data = cipher.update(data)
decrypted_data << cipher.final
end

我认为 Base64 编码可能是最好的方式,因为这些数据最终将出现在 JSON 请求的 HTTP header 中。似乎我可以使用 Base64.decode64 来解码 Ruby 端的数据并将其作为要解密的数据传递,但我希望有人可以指导我这是否真的是最好的方法,无论编码,如何像这样将指针指向 NSData 对象:

NSData *cipher = [plain AES256EncryptWithKey:key];

进入该编码值以将其发送到 Rails 应用程序。谢谢!

最佳答案

您可以使用标准的 AES 加密。以下是您可以在两个平台上快速使用的带有 AES-256-CBC 密码和 Base64 编码的库:

ruby

https://github.com/Gurpartap/aescrypt

以下是您将如何使用 AESCrypt Ruby gem:

message = "top secret message"
password = "p4ssw0rd"

# Encrypting
encrypted_data = AESCrypt.encrypt(message, password)

# Decrypting
message = AESCrypt.decrypt(encrypted_data, password)

Objective-C

https://github.com/Gurpartap/AESCrypt-ObjC

以下是您将如何使用 AESCrypt Objective-C 类:

NSString *message = @"top secret message";
NSString *password = @"p4ssw0rd";

// Encrypting
NSString *encryptedData = [AESCrypt encrypt:message password:password];

// Decrypting
NSString *message = [AESCrypt decrypt:encryptedData password:password];

祝你好运!

关于objective-c - 如何对 iOS Objective-C 应用程序和 Ruby on Rails 之间的加密数据进行编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11594174/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com