banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận bảo mật Vấn đề conver public key từ java sang .net và ngược lại  XML
  [Programming]   Vấn đề conver public key từ java sang .net và ngược lại 01/04/2010 16:36:49 (+0700) | #1 | 208244
MrNothing
Member

[Minus]    0    [Plus]
Joined: 04/01/2008 11:05:37
Messages: 76
Offline
[Profile] [PM]
Mình đang gặp một vấn đề cần giải quyết gấp.

Để convert public key từ java sang .net thì có ở đây:
http://www.codeproject.com/KB/security/porting_java_public_key.aspx

Tuy nhiên chiều ngược lại convert public key từ .net sang java thì chưa tìm thấy.
Tất nhiên là có thể làm ngược lại quá trình từ java sang .net.

Bác nào có biết giải pháp cho quá trình này thì cho mình ý kiến với.
[Up] [Print Copy]
  [Programming]   Vấn đề conver public key từ java sang .net và ngược lại 01/04/2010 21:30:49 (+0700) | #2 | 208261
MrNothing
Member

[Minus]    0    [Plus]
Joined: 04/01/2008 11:05:37
Messages: 76
Offline
[Profile] [PM]
Sorry, đã giải quyết xong smilie

Thanks bác ZOrrO đã nhắc nhở, hôm mà mình vội quả chỉ kịp post cái này, Tí nữa sẽ mình sẽ update luôn!
[Up] [Print Copy]
  [Programming]   Vấn đề conver public key từ java sang .net và ngược lại 01/04/2010 21:40:31 (+0700) | #3 | 208262
[Avatar]
Z0rr0
Q+WRtaW5pc3RyYXRvc+g

Joined: 14/08/2002 12:52:01
Messages: 1323
Location: Underground
Offline
[Profile] [PM] [WWW] [Yahoo!]
Sao bồ không chia sẻ cụ thể cách giải quyết nhỉ?
Nếu không chia sẻ được thì topic này vô nghĩa mất.
Hibernating
[Up] [Print Copy]
  [Programming]   Vấn đề conver public key từ java sang .net và ngược lại 03/04/2010 08:10:35 (+0700) | #4 | 208345
MrNothing
Member

[Minus]    0    [Plus]
Joined: 04/01/2008 11:05:37
Messages: 76
Offline
[Profile] [PM]


1. Public Key của .Net sinh ra có dạng
Code:
<RSAKeyValue><Modulus>Modulus value</Modulus><Exponent>exponent  value</Exponent></RSAKeyValue>


Convert sang java:
Code:
BigInteger modulus = new BigInteger(ISOUtil.hexString(Base64.decodeBase64("Modulus value in .net")), 16);
BigInteger exponent = new BigInteger(ISOUtil.hexString(Base64.decodeBase64("exponent value in .net")), 16);

RSAPublicKeySpec rsaPublicKeySpec = new RSAPublicKeySpec(modulus, exponent);

KeyFactory keyFactory = KeyFactory.getInstance("RSA");
RSAPublicKey publicKey = (RSAPublicKey) keyFactory.generatePublic(rsaPublicKeySpec);
            
Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
cipher.init(Cipher.ENCRYPT_MODE, publicKey);


2. Private key của .net có dạng:
Code:
<RSAKeyValue><Modulus>Modulus value </Modulus><Exponent> Exponent value</Exponent><P> P value</P><Q> Q value</Q><DP>dp value</DP><DQ>dq value</DQ><InverseQ>inverseq value</InverseQ><D>d value</D></RSAKeyValue>


Convert sang java private key:


Code:
BigInteger modules = new BigInteger(ISOUtil.hexString(Base64.decodeBase64("modules value")), 16);
        BigInteger exponent = new BigInteger(ISOUtil.hexString(Base64.decodeBase64("exponent value")), 16);
        BigInteger p = new BigInteger(ISOUtil.hexString(Base64.decodeBase64("p value")), 16);
        BigInteger q = new BigInteger(ISOUtil.hexString(Base64.decodeBase64("q value")), 16);
        BigInteger dp = new BigInteger(ISOUtil.hexString(Base64.decodeBase64("dp value")), 16);
        BigInteger dq = new BigInteger(ISOUtil.hexString(Base64.decodeBase64("dq value")), 16);
        BigInteger inverseQ = new BigInteger(ISOUtil.hexString(Base64.decodeBase64("inverseq value")), 16);
        BigInteger d = new BigInteger(ISOUtil.hexString(Base64.decodeBase64("d value")), 16);

        RSAPrivateCrtKeySpec rsaPrivateKeySpec = new RSAPrivateCrtKeySpec(modulus, exponent, d, p, q, dp, dq, inverseQ);
        
            KeyFactory keyFactory = KeyFactory.getInstance("RSA");
            RSAPrivateKey privateKey = (RSAPrivateKey) keyFactory.generatePrivate(rsaPrivateKeySpec);

            Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
            cipher.init(Cipher.DECRYPT_MODE, privateKey);








[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|