Tags:

ขอความช่วยเหลือท่านผู้รู้เรื่อง Encrypt ข้อมูล โดย RSA แบบ asymmetric (PublicKey, PrivateKey)หน่อยครับ

ผมกำลังพัฒนาระบบตัวหนึ่งซึ่งตัว Encrypt ข้อมูลโดยวิธีแบบ RSA ซึ่งฝั่งทางผมพัฒนาระบบด้วย VB.NET แต่ติดปัญหาที่ฝั่ง Decrypt นั้นพัฒนาระบบด้วย java และ ทางฝั่ง Decrypt ได้กำหนด KeySpec ของการ Encrypt มา ด้วยที่ผมไม่เคยทำงานเกี่ยวกับด้านการเข้ารหัสมาก่อนจึงไม่สามารถทำ KeySpec ได้ตามที่เขาต้องการได้ จึงได้ลองหาข้อมูลใน google ดูแล้วแต่ก็ยังไม่ได้สามารถเข้ารหัสได้ตาม KeySpec ได้

จึงขอความช่วยเหลือท่านผู้รู้เรื่อง Encrypt ข้อมูล โดย RSA ด้วย vb.net
เราจะสามารถกำหนด keySpec ได้อย่างไรครับ
ผมมี code ตัวอย่าง การกำหนด KeySpec ที่ฝั่ง java กำหนดให้ ซึ่งพอจะมาปรับเป็น vb.net ก็ไม่สามารถปรับได้ (ด้วยความรู้อันน้อยนิด T^T)

byte[] txtByte = decode64.decodeBuffer(publicKey);

RSAPublicKey rsaKey = (RSAPublicKey)KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(txtByte));

BigInteger modulus = new BigInteger(rsaKey.getModulus().toString());
BigInteger exponent = new BigInteger(rsaKey.getPublicExponent().toString());

        RSAPublicKeySpec rsaKeySpec = new RSAPublicKeySpec(modulus, exponent);
        RSAPublicKey rsaPublicKey = (RSAPublicKey)KeyFactory.getInstance("RSA").generatePublic(rsaKeySpec);

        Cipher rsa_cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
        rsa_cipher.init(Cipher.ENCRYPT_MODE,rsaPublicKey);

        byte[] encrypt_data = rsa_cipher.doFinal(txt.getBytes());

ขอความกรุณาด้วยครับ

Get latest news from Blognone
By: soginal
AndroidIn Love
on 13 August 2013 - 15:23 #609793
soginal's picture

น่าจะใส่ error message ทางฝั่ง java มาให้ดูด้วยนะครับ

By: Gamer on 14 August 2013 - 21:58 #610556 Reply to:609793

พอดีเป็น Mapping Error ที่ตกลงกันนะครับ Error ก็ประมาณว่า Decrypt ไม่ได้ เลยทำให้ไม่รู้ Error จริงๆ คืออะไร

By: PaPaSEK
ContributorAndroidWindowsIn Love
on 13 August 2013 - 15:24 #609795
PaPaSEK's picture

ผมไม่ถนัดเรื่อง cryptography เท่าไรครับ

แต่คิดว่านี่กับนี่น่าจะพอช่วยได้

By: Shin Pongsin
AndroidWindows
on 14 August 2013 - 00:47 #610029

อาจลองดู project นี้ด้วยนะครับ
http://www.codeproject.com/Articles/38739/RSA-Private-Key-Encryption

ถ้าดู code ไม่เข้าใจนัก ผมคิดว่าเริ่มจากการเอา private key + crypted string ที่ใช้กับฝั่ง java มาลองใช้ กับ RSA Tester ที่เค้ามีให้ใน demo ก็คงได้ครับ, แล้วลองถอดข้อความที่เข้ามาจาก java ก่อน

ถ้าสุดท้ายไขว้กันได้ดี ค่อยเอา C# ตัวนี้ไปแปลงเป็น VB.Net ครับ

By: Gamer on 14 August 2013 - 21:52 #610554

ขอบคุณครับ เดี๋ยวเอาไปลองปรับใช้ดูครับ ^^