Chilkat Examples

ChilkatHOMEAndroid™Classic ASPCC++C#Mono C#.NET Core C#C# UWP/WinRTDataFlexDelphi ActiveXDelphi DLLVisual FoxProJavaLianjaMFCObjective-CPerlPHP ActiveXPHP ExtensionPowerBuilderPowerShellPureBasicPythonRubySQL ServerSwiftTclUnicode CUnicode C++Visual Basic 6.0VB.NETVB.NET UWP/WinRTVBScriptXojo PluginNode.jsExcel

Objective-C Examples

Async
Certificates
ECC
Email Object
Encryption
FTP
HTML-to-XML/Text
Gzip
HTTP
IMAP
JSON
Jwt
MHT / HTML Email
PEM
PFX/P12
Java KeyStore (JKS)
OAuth2
POP3
RSA Encryption
MIME
REST
SCP
SMTP
Socket/SSL/TLS
SSH Key
SSH
SSH Tunnel
SFTP
Stream
Tar Archive
XML
XMP
Zip

More Examples...
OpenSSL
Google APIs
Google Cloud Storage
Azure Cloud Storage
Amazon S3 (new)
Google Drive
Dropbox
Firebase
ASN.1
PRNG
Amazon S3
Bounced Email
CSV
Diffie-Hellman
DKIM / DomainKey
DSA
NTLM
QuickBooks
Spider
Digital Signatures

 

 

 

 

 

 

 

(Objective-C) 3DES Encryption, ECB, CBC modes

3DES encryption. The Chilkat encryption component supports Triple-DES in both ECB (Electronic Cookbook) and CBC (Cipher-Block Chaining) cipher modes.

Chilkat Objective-C Library Downloads

MAC OS X (Cocoa) Libs

iOS Libs

#import "CkoCrypt2.h"
#import "NSString.h"



CkoCrypt2 *crypt = [[CkoCrypt2 alloc] init];

BOOL success = [crypt UnlockComponent: @"Anything for 30-day trial"];
if (success != YES) {
    NSLog(@"%@",crypt.LastErrorText);
    return;
}

//  Specify 3DES for the encryption algorithm:
crypt.CryptAlgorithm = @"3des";

//  CipherMode may be "ecb" or "cbc"
crypt.CipherMode = @"cbc";

//  KeyLength must be 192.  3DES is technically 168-bits;
//  the most-significant bit of each key byte is a parity bit,
//  so we must indicate a KeyLength of 192, which includes
//  the parity bits.
crypt.KeyLength = [NSNumber numberWithInt:192];

//  The padding scheme determines the contents of the bytes
//  that are added to pad the result to a multiple of the
//  encryption algorithm's block size.  3DES has a block
//  size of 8 bytes, so encrypted output is always
//  a multiple of 8.
crypt.PaddingScheme = [NSNumber numberWithInt:0];

//  EncodingMode specifies the encoding of the output for
//  encryption, and the input for decryption.
//  It may be "hex", "url", "base64", or "quoted-printable".
crypt.EncodingMode = @"hex";

//  An initialization vector is required if using CBC or CFB modes.
//  ECB mode does not use an IV.
//  The length of the IV is equal to the algorithm's block size.
//  It is NOT equal to the length of the key.
NSString *ivHex = @"0001020304050607";
[crypt SetEncodedIV: ivHex encoding: @"hex"];

//  The secret key must equal the size of the key.  For
//  3DES, the key must be 24 bytes (i.e. 192-bits).
NSString *keyHex = @"000102030405060708090A0B0C0D0E0F0001020304050607";
[crypt SetEncodedKey: keyHex encoding: @"hex"];

//  Encrypt a string...
//  The input string is 44 ANSI characters (i.e. 44 bytes), so
//  the output should be 48 bytes (a multiple of 8).
//  Because the output is a hex string, it should
//  be 96 characters long (2 chars per byte).
NSString *encStr = [crypt EncryptStringENC: @"The quick brown fox jumps over the lazy dog."];
NSLog(@"%@",encStr);

//  Now decrypt:
NSString *decStr = [crypt DecryptStringENC: encStr];
NSLog(@"%@",decStr);

 

© 2000-2016 Chilkat Software, Inc. All Rights Reserved.