Iphone IOS中可用的最佳数据加密算法是什么
我试图在将数据发送到服务器之前使用加密,是否有任何高度安全的双向加密算法?哪一个最适合这个目的 公钥基础设施(PKI)为您提供了一种在两台机器之间加密数据的可靠方法。您可以试一试。公钥基础设施(PKI)为您提供了一种在两台机器之间加密数据的可靠方法。您可以尝试一下。您可以使用HTTPS,也可以使用来加密您的数据。您可以使用HTTPS,也可以使用来加密您的数据。这是我使用3des CCCrypt方法的代码,从谷歌代码中查找GTMBase64.hIphone IOS中可用的最佳数据加密算法是什么,iphone,ios,Iphone,Ios,我试图在将数据发送到服务器之前使用加密,是否有任何高度安全的双向加密算法?哪一个最适合这个目的 公钥基础设施(PKI)为您提供了一种在两台机器之间加密数据的可靠方法。您可以试一试。公钥基础设施(PKI)为您提供了一种在两台机器之间加密数据的可靠方法。您可以尝试一下。您可以使用HTTPS,也可以使用来加密您的数据。您可以使用HTTPS,也可以使用来加密您的数据。这是我使用3des CCCrypt方法的代码,从谷歌代码中查找GTMBase64.h 这是我使用3des CCCrypt方法的代码,从Go
这是我使用3des CCCrypt方法的代码,从Google代码中查找GTMBase64.h 检查一下 这里,key是字符串变量,声明为全局变量 为您的代码添加Security框架并导入
#import <CommonCrypto/CommonDigest.h>
#import <CommonCrypto/CommonCryptor.h>
- (void)viewDidLoad
{
[super viewDidLoad];
key=@"Your own key";
// encoding
NSString *encodingString=[[self encrypt:[@"Your String"
dataUsingEncoding:NSUTF8StringEncoding]
base64EncodedString];;
//decoding
NSData *data=[self decrypt:[NSData dataFromBase64String:encryptString]];
NSString *decodingString = [[NSString alloc] initWithBytes:[data bytes] length:
[data length] encoding: NSASCIIStringEncoding];
}
- (NSData *) encrypt:(NSData *) plainText {
return [self transform:kCCEncrypt data:plainText];
}
- (NSData *) decrypt:(NSData *) cipherText {
return [self transform:kCCDecrypt data:cipherText];
}
- (NSData *) transform:(CCOperation) encryptOrDecrypt data:(NSData *) inputData {
// kCCKeySizeAES128 = 16 bytes
// CC_MD5_DIGEST_LENGTH = 16 bytes
NSData* secretKey = [ChipperObject md5:Key];
CCCryptorRef cryptor = NULL;
CCCryptorStatus status = kCCSuccess;
uint8_t iv[kCCBlockSizeAES128];
memset((void *) iv, 0x0, (size_t) sizeof(iv));
status = CCCryptorCreate(encryptOrDecrypt,
kCCAlgorithmAES128,kCCOptionPKCS7Padding,
[secretKey bytes], kCCKeySizeAES128, iv, &cryptor);
if (status != kCCSuccess) {
return nil;
}
size_t bufsize = CCCryptorGetOutputLength(cryptor, (size_t)[inputData length],
true);
void * buf = malloc(bufsize * sizeof(uint8_t));
memset(buf, 0x0, bufsize);
size_t bufused = 0;
size_t bytesTotal = 0;
status = CCCryptorUpdate(cryptor, [inputData bytes], (size_t)[inputData length],
buf, bufsize, &bufused);
if (status != kCCSuccess) {
free(buf);
CCCryptorRelease(cryptor);
return nil;
}
bytesTotal += bufused;
status = CCCryptorFinal(cryptor, buf + bufused, bufsize - bufused, &bufused);
if (status != kCCSuccess) {
free(buf);
CCCryptorRelease(cryptor);
return nil;
}
bytesTotal += bufused;
CCCryptorRelease(cryptor);
return [NSData dataWithBytesNoCopy:buf length:bytesTotal];
#导入
#进口
-(无效)viewDidLoad
{
[超级视图下载];
key=@“您自己的密钥”;
//编码
NSString*encodingString=[[自我加密:[@“您的字符串”
dataUsingEncoding:NSUTF8StringEncoding]
base64EncodedString];;
//解码
NSData*data=[自解密:[NSData dataFromBase64String:encryptString]];
NSString*decodingString=[[NSString alloc]initWithBytes:[数据字节]长度:
[数据长度]编码:NSASCIIStringEncoding];
}
-(NSData*)加密:(NSData*)明文{
返回[自转换:kCCEncrypt数据:明文];
}
-(NSData*)解密:(NSData*)密文{
返回[自转换:kCCDecrypt数据:密文];
}
-(NSData*)转换:(cOperation)加密加密数据:(NSData*)输入数据{
//kCCKeySizeAES128=16字节
//CC_MD5_摘要_长度=16字节
NSData*secretKey=[ChipperObject md5:Key];
CCCryptorRef cryptor=NULL;
CCCryptorStatus状态=kCCSuccess;
uint8_t iv[KCCBlocksizeeAes128];
memset((void*)iv,0x0,(size_t)sizeof(iv));
状态=CCCryptorCreate(encryptOrDecrypt,
kCCAlgorithmAES128,KCCOPIONPKCS7填充,
[secretKey字节]、kCCKeySizeAES128、iv和cryptor);
如果(状态!=kCCSuccess){
返回零;
}
size\u t bufsize=CCCryptorGetOutputLength(cryptor,(size\u t)[输入数据长度],
正确的);
void*buf=malloc(bufsize*sizeof(uint8_t));
memset(buf,0x0,bufsize);
尺寸=0;
大小\u t ByTestTotal=0;
状态=CCCryptoRuUpdate(cryptor,[inputData字节],(size_t)[inputData长度],
buf、bufsize和bufused);
如果(状态!=kCCSuccess){
免费(buf);
CCCryptorRelease(cryptor);
返回零;
}
bytesTotal+=bufused;
状态=CCCryptorFinal(加密器、buf+BUFUSE、bufsize-BUFUSE和BUFUSE);
如果(状态!=kCCSuccess){
免费(buf);
CCCryptorRelease(cryptor);
返回零;
}
bytesTotal+=bufused;
CCCryptorRelease(cryptor);
返回[NSData DATA WITH BYTESNOPY:buf length:bytesTotal];
}检查一次
这里,key是字符串变量,声明为全局变量
为您的代码添加Security框架并导入
#import <CommonCrypto/CommonDigest.h>
#import <CommonCrypto/CommonCryptor.h>
- (void)viewDidLoad
{
[super viewDidLoad];
key=@"Your own key";
// encoding
NSString *encodingString=[[self encrypt:[@"Your String"
dataUsingEncoding:NSUTF8StringEncoding]
base64EncodedString];;
//decoding
NSData *data=[self decrypt:[NSData dataFromBase64String:encryptString]];
NSString *decodingString = [[NSString alloc] initWithBytes:[data bytes] length:
[data length] encoding: NSASCIIStringEncoding];
}
- (NSData *) encrypt:(NSData *) plainText {
return [self transform:kCCEncrypt data:plainText];
}
- (NSData *) decrypt:(NSData *) cipherText {
return [self transform:kCCDecrypt data:cipherText];
}
- (NSData *) transform:(CCOperation) encryptOrDecrypt data:(NSData *) inputData {
// kCCKeySizeAES128 = 16 bytes
// CC_MD5_DIGEST_LENGTH = 16 bytes
NSData* secretKey = [ChipperObject md5:Key];
CCCryptorRef cryptor = NULL;
CCCryptorStatus status = kCCSuccess;
uint8_t iv[kCCBlockSizeAES128];
memset((void *) iv, 0x0, (size_t) sizeof(iv));
status = CCCryptorCreate(encryptOrDecrypt,
kCCAlgorithmAES128,kCCOptionPKCS7Padding,
[secretKey bytes], kCCKeySizeAES128, iv, &cryptor);
if (status != kCCSuccess) {
return nil;
}
size_t bufsize = CCCryptorGetOutputLength(cryptor, (size_t)[inputData length],
true);
void * buf = malloc(bufsize * sizeof(uint8_t));
memset(buf, 0x0, bufsize);
size_t bufused = 0;
size_t bytesTotal = 0;
status = CCCryptorUpdate(cryptor, [inputData bytes], (size_t)[inputData length],
buf, bufsize, &bufused);
if (status != kCCSuccess) {
free(buf);
CCCryptorRelease(cryptor);
return nil;
}
bytesTotal += bufused;
status = CCCryptorFinal(cryptor, buf + bufused, bufsize - bufused, &bufused);
if (status != kCCSuccess) {
free(buf);
CCCryptorRelease(cryptor);
return nil;
}
bytesTotal += bufused;
CCCryptorRelease(cryptor);
return [NSData dataWithBytesNoCopy:buf length:bytesTotal];
#导入
#进口
-(无效)viewDidLoad
{
[超级视图下载];
key=@“您自己的密钥”;
//编码
NSString*encodingString=[[自我加密:[@“您的字符串”
dataUsingEncoding:NSUTF8StringEncoding]
base64EncodedString];;
//解码
NSData*data=[自解密:[NSData dataFromBase64String:encryptString]];
NSString*decodingString=[[NSString alloc]initWithBytes:[数据字节]长度:
[数据长度]编码:NSASCIIStringEncoding];
}
-(NSData*)加密:(NSData*)明文{
返回[自转换:kCCEncrypt数据:明文];
}
-(NSData*)解密:(NSData*)密文{
返回[自转换:kCCDecrypt数据:密文];
}
-(NSData*)转换:(cOperation)加密加密数据:(NSData*)输入数据{
//kCCKeySizeAES128=16字节
//CC_MD5_摘要_长度=16字节
NSData*secretKey=[ChipperObject md5:Key];
CCCryptorRef cryptor=NULL;
CCCryptorStatus状态=kCCSuccess;
uint8_t iv[KCCBlocksizeeAes128];
memset((void*)iv,0x0,(size_t)sizeof(iv));
状态=CCCryptorCreate(encryptOrDecrypt,
kCCAlgorithmAES128,KCCOPIONPKCS7填充,
[secretKey字节]、kCCKeySizeAES128、iv和cryptor);
如果(状态!=kCCSuccess){
返回零;
}
size\u t bufsize=CCCryptorGetOutputLength(cryptor,(size\u t)[输入数据长度],
正确的);
void*buf=malloc(bufsize*sizeof(uint8_t));
memset(buf,0x0,bufsize);
尺寸=0;
大小\u t ByTestTotal=0;
状态=CCCryptoRuUpdate(cryptor,[inputData字节],(size_t)[inputData长度],
buf、bufsize和bufused);
如果(状态!=kCCSuccess){
免费(buf);
CCCryptorRelease(cryptor);
返回零;
}
bytesTotal+=bufused;
状态=CCCryptorFinal(加密器、buf+BUFUSE、bufsize-BUFUSE和BUFUSE);
如果(状态!=kCCSuccess){
免费(buf);
CCCryptorRelease(cryptor);
返回零;
}
bytesTotal+=bufused;
CCCryptorRelease(cryptor);
返回[NSData DATA WITH BYTESNOPY:buf length:bytesTot
#import <CommonCrypto/CommonDigest.h>
#import <CommonCrypto/CommonCryptor.h>
- (void)viewDidLoad
{
[super viewDidLoad];
key=@"Your own key";
// encoding
NSString *encodingString=[[self encrypt:[@"Your String"
dataUsingEncoding:NSUTF8StringEncoding]
base64EncodedString];;
//decoding
NSData *data=[self decrypt:[NSData dataFromBase64String:encryptString]];
NSString *decodingString = [[NSString alloc] initWithBytes:[data bytes] length:
[data length] encoding: NSASCIIStringEncoding];
}
- (NSData *) encrypt:(NSData *) plainText {
return [self transform:kCCEncrypt data:plainText];
}
- (NSData *) decrypt:(NSData *) cipherText {
return [self transform:kCCDecrypt data:cipherText];
}
- (NSData *) transform:(CCOperation) encryptOrDecrypt data:(NSData *) inputData {
// kCCKeySizeAES128 = 16 bytes
// CC_MD5_DIGEST_LENGTH = 16 bytes
NSData* secretKey = [ChipperObject md5:Key];
CCCryptorRef cryptor = NULL;
CCCryptorStatus status = kCCSuccess;
uint8_t iv[kCCBlockSizeAES128];
memset((void *) iv, 0x0, (size_t) sizeof(iv));
status = CCCryptorCreate(encryptOrDecrypt,
kCCAlgorithmAES128,kCCOptionPKCS7Padding,
[secretKey bytes], kCCKeySizeAES128, iv, &cryptor);
if (status != kCCSuccess) {
return nil;
}
size_t bufsize = CCCryptorGetOutputLength(cryptor, (size_t)[inputData length],
true);
void * buf = malloc(bufsize * sizeof(uint8_t));
memset(buf, 0x0, bufsize);
size_t bufused = 0;
size_t bytesTotal = 0;
status = CCCryptorUpdate(cryptor, [inputData bytes], (size_t)[inputData length],
buf, bufsize, &bufused);
if (status != kCCSuccess) {
free(buf);
CCCryptorRelease(cryptor);
return nil;
}
bytesTotal += bufused;
status = CCCryptorFinal(cryptor, buf + bufused, bufsize - bufused, &bufused);
if (status != kCCSuccess) {
free(buf);
CCCryptorRelease(cryptor);
return nil;
}
bytesTotal += bufused;
CCCryptorRelease(cryptor);
return [NSData dataWithBytesNoCopy:buf length:bytesTotal];