Chilkat HOME ASP Visual Basic VB.NET C# Visual C++ C MFC Delphi FoxPro Java Perl PHP Python Ruby SQL Server VBScript
|
3DES Test VectorExample for 3-key 3DES encryption (192-bit) to match a test vector produced by both (non-Chilkat) PHP code and C# code using the .NET Framework. PHP code to produce identical output: PHP 3DES Test Vector C# code to produce identical output: C# 3DES Test Vector
CREATE PROCEDURE ChilkatSample AS BEGIN DECLARE @hr int DECLARE @crypt int EXEC @hr = sp_OACreate 'Chilkat.Crypt2', @crypt OUT IF @hr <> 0 BEGIN PRINT 'Failed to create ActiveX component' RETURN END DECLARE @success int EXEC sp_OAMethod @crypt, 'UnlockComponent', @success OUT, 'Anything for 30-day trial.' IF @success <> 1 BEGIN PRINT 'Crypt component unlock failed' RETURN END -- Specify 3DES for the encryption algorithm: EXEC sp_OASetProperty @crypt, 'CryptAlgorithm', '3des' EXEC sp_OASetProperty @crypt, 'CipherMode', 'ecb' -- 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. EXEC sp_OASetProperty @crypt, 'KeyLength', 192 -- Pad with zeros EXEC sp_OASetProperty @crypt, 'PaddingScheme', 3 -- EncodingMode specifies the encoding of the output for -- encryption, and the input for decryption. -- It may be "hex", "url", "base64", or "quoted-printable". EXEC sp_OASetProperty @crypt, 'EncodingMode', 'hex' -- The secret key must equal the size of the key. For -- 3DES, the key must be 24 bytes (i.e. 192-bits). DECLARE @keyAscii nvarchar(4000) SELECT @keyAscii = '1234567890123456ABCDEFGH' EXEC sp_OAMethod @crypt, 'SetEncodedKey', NULL, @keyAscii, 'ascii' -- Encrypt. -- The result should be: -- 13d4d3549493d2870f93c3e0812a06de467e1f9c0bfb16c070ede5cabbd3ca62f217a7ae8d47f2c7bf62eb309323b58b DECLARE @encStr nvarchar(4000) EXEC sp_OAMethod @crypt, 'EncryptStringENC', @encStr OUT, 'The quick brown fox jumped over the lazy dog' PRINT @encStr -- Now decrypt: DECLARE @decStr nvarchar(4000) EXEC sp_OAMethod @crypt, 'DecryptStringENC', @decStr OUT, @encStr PRINT @decStr END GO |
© 2000-2010 Chilkat Software, Inc. All Rights Reserved.