AES加密/解密印地文字符

时间:2014-05-30 12:03:45

标签: objective-c

我试图使用Rijndael密码算法(aes 128加密)解密印地语字符,但它无法正常工作,尽管代码能够成功加密印地语字符并且它工作正常(加密/解密)有英文字符。

使用以下类加密/解密https://github.com/DavidVeksler/CryptAByte

即时通讯使用以下方案 纯文本 - > stringByEncodingHTMLEntities - >为密钥添加填充以使其成为4 ---> base64EncodingWithLineLength的倍数。

我认为问题在于我正在使用 static char encodingTable [64] = { ' A'' B',' C'' d'' E'' F& #39;,' G'' H',' I'' J'' K',& #39; L'' M'' N'' O'' P&#39 ;, ' Q'' R'' S'' T'' U'' V& #39;' W'' X'' Y'' Z'' A',& #39; b'' C'' d'' E'' F&#39 ;, ' G'' H'' I'' J'' K'' L& #39;' M'' N'' O'' p'' q',& #39; R'' S''吨'' U'' v&#39 ;, ' W'' X'' Y'' Z'' 0'' 1& #39;,' 2'&#39 3'' 4'&#39 5'' 6',& #39; 7'&#39 8'' 9'' +'' /'} 对于不包含印地文字符集和

的编码

任何身体都可以帮助我真的没有得到它。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

AES与hindi字符没有什么特别之处,AES只处理字节,不关心字节可能代表什么。

AES加密和解密字节,即全部。您需要将hindi字符转换为数据流,可能使用NSString方法:

- (NSData *)dataUsingEncoding:(NSStringEncoding)encoding

编码`NSUTF8StringEncoding'。

然后加密数据

对数据做一些事情,可能是Base64编码和html实体编码 颠倒以上任何一种。

然后使用NSString方法解密:

- (instancetype)initWithData:(NSData *)data encoding:(NSStringEncoding)encoding

再次编码`NSUTF8StringEncoding'。