我试图使用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'' +'' /'} 对于不包含印地文字符集和
的编码任何身体都可以帮助我真的没有得到它。 提前谢谢。
答案 0 :(得分:0)
AES与hindi字符没有什么特别之处,AES只处理字节,不关心字节可能代表什么。
AES加密和解密字节,即全部。您需要将hindi字符转换为数据流,可能使用NSString
方法:
- (NSData *)dataUsingEncoding:(NSStringEncoding)encoding
编码`NSUTF8StringEncoding'。
然后加密数据
对数据做一些事情,可能是Base64编码和html实体编码 颠倒以上任何一种。
然后使用NSString
方法解密:
- (instancetype)initWithData:(NSData *)data encoding:(NSStringEncoding)encoding
再次编码`NSUTF8StringEncoding'。