Hi, I need to encrypt data using C+openssl,then decrypt data using JAVA+SUNJCE. When I encrypt the same plaintext using openssl and sunjce, I found the two ciphertexts are different. I tried two algorithms:EVP_des_ede() / "DES" ,EVP_rc4() / "RC4", but the results are all depressing.
I googled a post in which someone said,"you can use open ssl to encrypt the data and decrypt the same using java (any JCE implementaions) .Provided you have to use same algorthim with correct pading and initialisation vectors ." I think this is my problem.Maybe I don't know the correct padding or iv. So,can anyone help me to solve this problem? Thank you very much. Here is my main code. /* C+openssl encrypt key is parameter[strref] ,such as strref="123456"; */ int M_encrypt(unsigned char *in,int inl,unsigned char *out,int *outl, unsigned char *strref,int strrefl) { EVP_CIPHER_CTX ctx; unsigned char ekey[EVP_MAX_KEY_LENGTH]; unsigned char eiv[EVP_MAX_IV_LENGTH]; int tlen,flen; EVP_BytesToKey(EVP_des_ede(),EVP_md5(),NULL,strref,strrefl,1,ekey,eiv); EVP_EncryptInit(&ctx,cipher,ekey,eiv); EVP_EncryptUpdate(&ctx,out,&tlen,in,inl); flen=tlen; EVP_EncryptFinal(&ctx,out+flen,&tlen); flen+=tlen; *outl=flen; return 0; } /* JAVA+sun jce, encrypt key is parameter[key],byte[] key=new String("123456").getBytes(); */ public static byte[] encrypto(byte[] input,byte[] key) throws Exception{ SecretKey deskey = new javax.crypto.spec.SecretKeySpec(key,"DES"); Cipher c1 = Cipher.getInstance("DES"); c1.init(Cipher.ENCRYPT_MODE,deskey); byte[] cipherByte=c1.doFinal(input); return cipherByte; } ______________________________________________________________________ OpenSSL Project http://www.openssl.org User Support Mailing List openssl-users@openssl.org Automated List Manager [EMAIL PROTECTED]