簡體   English   中英

Objective-C和Ruby中的數據編碼

[英]Data encoding in Objective-C and Ruby

我正在使用Parse開發iOS應用程序,我需要使用Ruby為其構建的網站和瀏覽器擴展程序模擬其加密流程。

為了為AES生成鹽,它們在iOS應用中具有以下代碼:

NSString *str            =    user.email;
NSData *strData          =    [str dataUsingEncoding: NSUTF8StringEncoding];
NSData *encryptedData    =    [strData AESEncryptWithPassphrase:str]; // using the same key

令我感到困惑的是dataUsingEncoding: NSUTF8StringEncoding顯然是在UTF-8中對字符串進行編碼,但是當我在NSLog中看到它時,它似乎完全不同。 因此,如果str是“ randomemail@gmail.com”,則對strData輸出執行NSLog

<72616e64 6f6d656d 61696c40 676d6169 6c2e636f 6d>

現在,如何在Ruby中獲得相同的輸出? 因此,我收不到合適的鹽(“ randomemail@gmail.com” .encode(“ UTF-8”)只會按預期返回電子郵件)。 如何在Ruby中模擬dataUsingEncoding以獲得完全相同的鹽,我是否缺少某些東西?

謝謝

嘗試這個:

"randomemail@gmail.com".encode("UTF-8").bytes.to_a.map{ |x| x.to_s(16)}

然后您將“看到”您想要的。

使用UTF-8編碼的“ randomemail@gmail.com”的十六進制表示為

<72616e64 6f6d656d 61696c40 676d6169 6c2e636f 6d>

但是ruby向您顯示字符串表示形式,即“ randomemail@gmail.com”。 他們以不同的方式展示相同的東西。

在此處查看更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM