Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> Re: Encryption in Oracle , decryption in Java

Re: Encryption in Oracle , decryption in Java

From: Vladimir M. Zakharychev <vladimir.zakharychev_at_gmail.com>
Date: 10 May 2007 22:46:35 -0700
Message-ID: <1178862395.378938.80550@y80g2000hsf.googlegroups.com>


On May 10, 6:13 pm, schw <schwa..._at_alpha.net.pl> wrote:
> Hi
>
> I encountered a problem not sure how to solve it. please help if
> possible.
>
> in oracle9 I do a simple encryption (using DES) that gives me the
> following RAW:
>
> F26D94ECDACDBD111584C7A8A9018A5C
>
> when decrypted I get 36463643363133313332333333343335 which is
> correct.
>
> However in java when I try decrypting the
> 'F26D94ECDACDBD111584C7A8A9018A5C' I get this:
>
> 3646364336313331c15fa7dfe9f98e24
>
> First 8 bytes are exactly the same, the other 8 bytes differ, why ?
>
> In Java I use the following code:
>
> Cipher dcipher = null;
>
> dcipher = Cipher.getInstance("DES/ECB/NoPadding");
>
> SecretKey myKey = new SecretKeySpec(_key, "DES");
>
> dcipher.init(_cryptMode, myKey);
>
> return dcipher.doFinal(_buffer);
>
> Obviously keys in both encryption and decryption are the same.
>
> Thanks for any hints.

I believe Oracle's implementation of DES in DBMS_OBFUSCATION_TOOLKIT uses CBC mode, not ECB. This is why the first 64-bit block comes out the same (the same initial state and key,) but all subsequent blocks differ. Try decrypting with Cipher.getInstance("DES/CBC/NoPadding"), this should work.

Hth,

   Vladimir M. Zakharychev
   N-Networks, makers of Dynamic PSP(tm)    http://www.dynamicpsp.com Received on Fri May 11 2007 - 00:46:35 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US