zhangxu31666
发贴: 1
积分: 0
|
于 2007-09-18 09:13
有哪位做过javacard RSA运算的吗?我现在遇到一个问题, 我用下列代码在卡内解密密文得出正确的结果 authRSAKeyCRT = (RSAPrivateCrtKey) KeyBuilder.buildKey(KeyBuilder.TYPE_RSA_CRT_PRIVATE, (short)1024, false); authRSAKeyCRT.setDP1(DP,(short)0,(short)64); authRSAKeyCRT.setDQ1(DQ,(short)0,(short)64); authRSAKeyCRT.setP(P,(short)0,(short)64); authRSAKeyCRT.setPQ(PQ,(short)0,(short)64); authRSAKeyCRT.setQ(Q,(short)0,(short)64); rsaCipher = Cipher.getInstance(Cipher.ALG_RSA_PKCS1,false); rsaCipher.init(authRSAKeyCRT, Cipher.MODE_DECRYPT); byte outBuff[]=new byte[128]; try{ rsaCipher.doFinal(buffer, (short)5, (short)128, outBuff, (short)0); }catch(CryptoException e){
} 可是在卡内公钥加密,怎么每次加密的结果都在变化呢?(我用的是同样的公钥和明文,可是每次运行完结果都不一样) publickey=(RSAPublicKey)KeyBuilder.buildKey(KeyBuilder.TYPE_RSA_PUBLIC, KeyBuilder.LENGTH_RSA_1024, false ); publickey.setExponent(e,(short)0,(short)3); publickey.setModulus(m,(short)0,(short)128); rsaCipher=Cipher.getInstance(Cipher.ALG_RSA_PKCS1,false); rsaCipher.init(publickey,Cipher.MODE_ENCRYPT); byte keydata[]=new byte[128];//加密卡外随机数的结果 rsaCipher.doFinal(buffer,(short)5,(short)16,keydata,(short)0); 各位帮忙指点一下吧,或者有卡内公钥加密的代码给参考一下可以吗?
|