ios - DES解密问题

标签 ios iphone objective-c encryption des

我正在使用 ECB 模式的 DES 解密。我正在使用以下代码进行解密:

NSString *token = @"kRAz86UoZd5tFKf0xv8TKg==";
NSString *key = @"meristem";

const void *vplainText;
size_t plainTextBufferSize;

NSData *EncryptData = [[NSData alloc] initWithBase64EncodedString:token options:0];
plainTextBufferSize = [EncryptData length];
vplainText = [EncryptData bytes];

//plainTextBufferSize = [token length];
//vplainText = (const void *) [token UTF8String];

CCCryptorStatus ccStatus;
uint8_t *bufferPtr = NULL;
size_t bufferPtrSize = 0;
size_t movedBytes;

bufferPtrSize = (plainTextBufferSize + kCCBlockSize3DES) & ~(kCCBlockSize3DES - 1);
bufferPtr = malloc( bufferPtrSize * sizeof(uint8_t));
memset((void *)bufferPtr, 0x0, bufferPtrSize);

NSString *initVec = @"init Vec";
const void *vkey = (const void *) [key UTF8String];
const void *vinitVec;
vinitVec = (const void *) [initVec UTF8String];

ccStatus = CCCrypt(kCCDecrypt,
                   kCCAlgorithmDES,
                   kCCOptionPKCS7Padding | kCCOptionECBMode,
                   vkey, //"123456789012345678901234", //key
                   kCCKeySizeDES,
                   NULL,// vinitVec, //"init Vec", //iv,
                   vplainText, //"Your Name", //plainText,
                   plainTextBufferSize,
                   (void *)bufferPtr,
                   bufferPtrSize,
                   &movedBytes);

NSData *myData = [NSData dataWithBytes:(const void *)bufferPtr length:(NSUInteger)movedBytes];
NSString *decodedString = [[NSString alloc] initWithData:myData encoding:NSUTF8StringEncoding];
NSLog(@"dis is data %@",decodedString);

在这里,你可以看到我的加密字符串是kRAz86UoZd5tFKf0xv8TKg==,它的结果是vishal thakur。但是通过使用上面的代码进行解密,我得到的只是vishal t。我不明白为什么没有得到完整的字符串。谁能告诉我我做错了什么。

最佳答案

我已经通过替换这一行解决了我的问题

plainTextBufferSize = [EncryptData length];  

进入

plainTextBufferSize = [EncryptData length]+1;

关于ios - DES解密问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21551514/

相关文章:

iphone - IOS中Json解析错误

iphone - 未找到 AVFoundation/AVCaptureDevice.h

ios - Firebase 查询只返回新帖子?

ios - 如何在一段时间内更改UIButton的颜色

ios - 正确使用 Metal 的方法

iphone - 降级到 iPhone 应用程序的先前版本

ios - AVAudio 的最佳麦克风录音设置是什么?

iphone - 在rubymotion中按下按钮后如何启动NavigationController

iphone - 如何在固定时自动显示地点标题?

objective-c - 未检测到已删除的条目-iOS