আমি কীভাবে পাবলিক কী ফর্ম্যাটর দুটি শৈলীর মধ্যে রূপান্তর করতে পারি, একটি "শুরু আরএসএ পাবলিক কী", অন্যটি হ'ল "পাবলিক কী"


99

আমি কীভাবে সর্বজনীন কী বিন্যাসের দুটি শৈলীর মধ্যে রূপান্তর করতে পারি, তার একটি বিন্যাস হ'ল:

-----BEGIN PUBLIC KEY-----
...
-----END PUBLIC KEY-----

অন্য ফর্ম্যাটটি হ'ল:

-----BEGIN RSA PUBLIC KEY-----
...
-----END RSA PUBLIC KEY-----

উদাহরণস্বরূপ আমি ssh-keygen কমান্ড ব্যবহার করে id_rsa / id_rsa.pub জোড়াটি তৈরি করেছি, আমি id_rsa থেকে সর্বজনীন কী গণনা করে ব্যবহার করেছি:

openssl rsa -in id_rsa -pubout -out pub2 

তারপরে আমি আবার ID_rsa.pub ব্যবহার করে সর্বজনীন কী গণনা করেছি:

ssh-keygen -f id_rsa.pub -e -m pem > pub1

বিষয়বস্তুটি পাব 1 হ'ল:

-----BEGIN RSA PUBLIC KEY-----
MIIBCgKCAQEA61BjmfXGEvWmegnBGSuS+rU9soUg2FnODva32D1AqhwdziwHINFa
D1MVlcrYG6XRKfkcxnaXGfFDWHLEvNBSEVCgJjtHAGZIm5GL/KA86KDp/CwDFMSw
luowcXwDwoyinmeOY9eKyh6aY72xJh7noLBBq1N0bWi1e2i+83txOCg4yV2oVXhB
o8pYEJ8LT3el6Smxol3C1oFMVdwPgc0vTl25XucMcG/ALE/KNY6pqC2AQ6R2ERlV
gPiUWOPatVkt7+Bs3h5Ramxh7XjBOXeulmCpGSynXNcpZ/06+vofGi/2MlpQZNhH
Ao8eayMp6FcvNucIpUndo1X8dKMv3Y26ZQIDAQAB
-----END RSA PUBLIC KEY-----

এবং পাব 2 এর সামগ্রীটি হ'ল:

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA61BjmfXGEvWmegnBGSuS
+rU9soUg2FnODva32D1AqhwdziwHINFaD1MVlcrYG6XRKfkcxnaXGfFDWHLEvNBS
EVCgJjtHAGZIm5GL/KA86KDp/CwDFMSwluowcXwDwoyinmeOY9eKyh6aY72xJh7n
oLBBq1N0bWi1e2i+83txOCg4yV2oVXhBo8pYEJ8LT3el6Smxol3C1oFMVdwPgc0v
Tl25XucMcG/ALE/KNY6pqC2AQ6R2ERlVgPiUWOPatVkt7+Bs3h5Ramxh7XjBOXeu
lmCpGSynXNcpZ/06+vofGi/2MlpQZNhHAo8eayMp6FcvNucIpUndo1X8dKMv3Y26
ZQIDAQAB
-----END PUBLIC KEY-----

আমার বোঝাপড়া অনুসারে, পাব 1 এবং পাব 2 তে একই রকম পাবলিক কী তথ্য রয়েছে তবে সেগুলি ভিন্ন ফর্ম্যাটে রয়েছে, আমি ভাবছি কীভাবে আমি দুটি ফর্ম্যাটটির মধ্যে রূপান্তর করতে পারি? টাও ফর্ম্যাটগুলিতে কেউ আমাকে কিছু সংক্ষিপ্ত পরিচিতি দেখাতে পারেন?


স্ট্যাক ওভারফ্লো প্রোগ্রামিং এবং বিকাশের প্রশ্নের জন্য একটি সাইট। এই প্রশ্নটি অফ-টপিক হিসাবে উপস্থিত বলে মনে হচ্ছে কারণ এটি প্রোগ্রামিং বা উন্নয়ন সম্পর্কিত নয়। সহায়তা কেন্দ্রে আমি এখানে কোন বিষয় সম্পর্কে জিজ্ঞাসা করতে পারি তা দেখুন । সম্ভবত সুপার ইউজার বা ইউনিক্স ও লিনাক্স স্ট্যাক এক্সচেঞ্জ জিজ্ঞাসা করতে একটি ভাল জায়গা হবে।
jww

উত্তর:


12

পিএইচপিএসক্লিব ব্যবহার করে , খাঁটি পিএইচপি আরএসএ প্রয়োগকরণ ...

<?php
include('Crypt/RSA.php');

$rsa = new Crypt_RSA();
$rsa->loadKey('-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA61BjmfXGEvWmegnBGSuS
+rU9soUg2FnODva32D1AqhwdziwHINFaD1MVlcrYG6XRKfkcxnaXGfFDWHLEvNBS
EVCgJjtHAGZIm5GL/KA86KDp/CwDFMSwluowcXwDwoyinmeOY9eKyh6aY72xJh7n
oLBBq1N0bWi1e2i+83txOCg4yV2oVXhBo8pYEJ8LT3el6Smxol3C1oFMVdwPgc0v
Tl25XucMcG/ALE/KNY6pqC2AQ6R2ERlVgPiUWOPatVkt7+Bs3h5Ramxh7XjBOXeu
lmCpGSynXNcpZ/06+vofGi/2MlpQZNhHAo8eayMp6FcvNucIpUndo1X8dKMv3Y26
ZQIDAQAB
-----END PUBLIC KEY-----');
$rsa->setPublicKey();

echo $rsa->getPublicKey(CRYPT_RSA_PUBLIC_FORMAT_PKCS1_RAW);

বেস 64-এনকোডযুক্ত জিনিসগুলি মিলতে দেখা যায় যদিও শিরোনামটি শুরু হয় PEGLICKE KEY এবং শুরু না RSA পাবলিক কী। সুতরাং সম্ভবত এটি ঠিক করার জন্য কেবল str_replace ব্যবহার করুন এবং আপনার যাওয়া ভাল হবে!


314

আমি এখানে কী চলছে তা ব্যাখ্যা করতে সহায়তা করতে চেয়েছিলাম।

একটি আরএসএ "পাবলিক কী" দুটি সংখ্যা নিয়ে গঠিত:

  • মডুলাস (যেমন একটি 2,048 বিট সংখ্যা)
  • সূচক (সাধারণত 65,537)

আপনার আরএসএ সর্বজনীন কী উদাহরণ হিসাবে ব্যবহার করে, দুটি সংখ্যা হ'ল:

  • মডুলাস : 297,056,429,939,040,947,991,047,334,197,581,225,628,107,021,573,849,359,042,679,698,093,131,908, 015,712,695,688,944,173,317,630,555,849,768,647,118,986,535,684,992,447,654,339,728,777,985,990,170, 679,511,111,819,558,063,246,667,855,023,730,127,805,401,069,042,322,764,200,545,883,378,826,983,730, 553.730.138.478.384.327.116.513.143.842.816.383.440.639.376.515.039.682.874.046.227.217.032.079.079.790.098.143.158.087.443.017.552.531.393.264.852.461.292.775.129.262.080.851.633.535.934.010.704.122.673.027.067.442.627.059.982.393.297.716.922.243.940.155.855.127.430.302.323.883.824.137.412.883.916.794.359.982.603.439.112.095.116.831.297.809.626.059.569.444.750.808.699.678.211.904.501.083.183.234.323.797.142.810.155.862.553.705.570.600.021.649.944.369.726.123.996.534.870.137.000.784.980.673.984.909.570.977.377.882.585.701
  • এক্সপোনেন্ট : 65.537

প্রশ্নটি তখন হয়ে যায় আমরা কীভাবে এই সংখ্যাগুলি একটি কম্পিউটারে সঞ্চয় করতে চাই। প্রথমে আমরা উভয়কে হেক্সাডেসিমালে রূপান্তর করি:

  • মডিউলস : EB506399F5C612F5A67A09C1192B92FAB53DB28520D859CE0EF6B7D83D40AA1C1DCE2C0720D15A0F531595CAD81BA5D129F91CC6769719F1435872C4BCD0521150A0263B470066489B918BFCA03CE8A0E9FC2C0314C4B096EA30717C03C28CA29E678E63D78ACA1E9A63BDB1261EE7A0B041AB53746D68B57B68BEF37B71382838C95DA8557841A3CA58109F0B4F77A5E929B1A25DC2D6814C55DC0F81CD2F4E5DB95EE70C706FC02C4FCA358EA9A82D8043A47611195580F89458E3DAB5592DEFE06CDE1E516A6C61ED78C13977AE9660A9192CA75CD72967FD3AFAFA1F1A2FF6325A5064D847028F1E6B2329E8572F36E708A549DDA355FC74A32FDD8DBA65
  • এক্সপোনেন্ট : 010001

আরএসএ প্রথম ফর্ম্যাট আবিষ্কার করেছে

আরএসএ প্রথমে একটি ফর্ম্যাট আবিষ্কার করেছে:

RSAPublicKey ::= SEQUENCE {
    modulus           INTEGER,  -- n
    publicExponent    INTEGER   -- e
}

তারা দুটি সংখ্যা উপস্থাপনের জন্য ASN.1 বাইনারি এনকোডিং স্ট্যান্ডার্ডের DER গন্ধ ব্যবহার করতে পছন্দ করেছে [1] :

SEQUENCE (2 elements)
   INTEGER (2048 bit): EB506399F5C612F5A67A09C1192B92FAB53DB28520D859CE0EF6B7D83D40AA1C1DCE2C0720D15A0F531595CAD81BA5D129F91CC6769719F1435872C4BCD0521150A0263B470066489B918BFCA03CE8A0E9FC2C0314C4B096EA30717C03C28CA29E678E63D78ACA1E9A63BDB1261EE7A0B041AB53746D68B57B68BEF37B71382838C95DA8557841A3CA58109F0B4F77A5E929B1A25DC2D6814C55DC0F81CD2F4E5DB95EE70C706FC02C4FCA358EA9A82D8043A47611195580F89458E3DAB5592DEFE06CDE1E516A6C61ED78C13977AE9660A9192CA75CD72967FD3AFAFA1F1A2FF6325A5064D847028F1E6B2329E8572F36E708A549DDA355FC74A32FDD8DBA65
   INTEGER (24 bit): 010001

ASN.1 এ চূড়ান্ত বাইনারি এনকোডিংটি হ'ল:

30 82 01 0A      ;sequence (0x10A bytes long)
   02 82 01 01   ;integer (0x101 bytes long)
      00 EB506399F5C612F5A67A09C1192B92FAB53DB28520D859CE0EF6B7D83D40AA1C1DCE2C0720D15A0F531595CAD81BA5D129F91CC6769719F1435872C4BCD0521150A0263B470066489B918BFCA03CE8A0E9FC2C0314C4B096EA30717C03C28CA29E678E63D78ACA1E9A63BDB1261EE7A0B041AB53746D68B57B68BEF37B71382838C95DA8557841A3CA58109F0B4F77A5E929B1A25DC2D6814C55DC0F81CD2F4E5DB95EE70C706FC02C4FCA358EA9A82D8043A47611195580F89458E3DAB5592DEFE06CDE1E516A6C61ED78C13977AE9660A9192CA75CD72967FD3AFAFA1F1A2FF6325A5064D847028F1E6B2329E8572F36E708A549DDA355FC74A32FDD8DBA65
   02 03         ;integer (3 bytes long)
      010001

তারপরে যদি আপনি সেই সমস্ত বাইট একসাথে চালান এবং বেস 64 এটি এনকোড করে, আপনি পাবেন:

MIIBCgKCAQEA61BjmfXGEvWmegnBGSuS+rU9soUg2FnODva32D1AqhwdziwHINFa
D1MVlcrYG6XRKfkcxnaXGfFDWHLEvNBSEVCgJjtHAGZIm5GL/KA86KDp/CwDFMSw
luowcXwDwoyinmeOY9eKyh6aY72xJh7noLBBq1N0bWi1e2i+83txOCg4yV2oVXhB
o8pYEJ8LT3el6Smxol3C1oFMVdwPgc0vTl25XucMcG/ALE/KNY6pqC2AQ6R2ERlV
gPiUWOPatVkt7+Bs3h5Ramxh7XjBOXeulmCpGSynXNcpZ/06+vofGi/2MlpQZNhH
Ao8eayMp6FcvNucIpUndo1X8dKMv3Y26ZQIDAQAB

আরএসএ ল্যাবগুলি তখন বলেছিল একটি শিরোনাম এবং ট্রেলার যুক্ত করুন:

-----BEGIN RSA PUBLIC KEY-----
MIIBCgKCAQEA61BjmfXGEvWmegnBGSuS+rU9soUg2FnODva32D1AqhwdziwHINFa
D1MVlcrYG6XRKfkcxnaXGfFDWHLEvNBSEVCgJjtHAGZIm5GL/KA86KDp/CwDFMSw
luowcXwDwoyinmeOY9eKyh6aY72xJh7noLBBq1N0bWi1e2i+83txOCg4yV2oVXhB
o8pYEJ8LT3el6Smxol3C1oFMVdwPgc0vTl25XucMcG/ALE/KNY6pqC2AQ6R2ERlV
gPiUWOPatVkt7+Bs3h5Ramxh7XjBOXeulmCpGSynXNcpZ/06+vofGi/2MlpQZNhH
Ao8eayMp6FcvNucIpUndo1X8dKMv3Y26ZQIDAQAB
-----END RSA PUBLIC KEY-----

পাঁচ হাইফেন, এবং শব্দ BEGIN RSA PUBLIC KEY। এটি আপনার পিইএম ডের এএসএন 1 পিকেসিএস # 1 আরএসএ সর্বজনীন কী

  • পিইএম: বেস 64 এর সমার্থক শব্দ
  • DER: ASN.1 এনকোডিংয়ের স্বাদ
  • ASN.1: বাইনারি এনকোডিং প্রকল্প ব্যবহৃত হয়েছে
  • পিকেসিএস # 1: আনুষ্ঠানিক স্পেসিফিকেশন যা জনসাধারণের কীকে কাঠামো হিসাবে উপস্থাপিত করে যার দ্বারা একটি ব্যয়কারী অনুসরণ করে মডিউল থাকে
  • আরএসএ সর্বজনীন কী: সর্বজনীন কী অ্যালগরিদম ব্যবহৃত হচ্ছে

শুধু আরএসএ নয়

এর পরে, পাবলিক কী ক্রিপ্টোগ্রাফির অন্যান্য রূপগুলি উপস্থিত হয়েছিল:

  • ডিফি-হেলম্যান
  • উপবৃত্তাকার বক্ররেখা

যখন এটি কিভাবে পরামিতি প্রতিনিধিত্ব দেওয়ার একটি আদর্শ তৈরি করতে সময় এসে সেই এনক্রিপশন অ্যালগোরিদম, মানুষ একই ধারণা অনেক যে আরএসএ মূলত সংজ্ঞায়িত গৃহীত:

  • ASN.1 বাইনারি এনকোডিং ব্যবহার করুন
  • বেস 64 এটি
  • পাঁচটি হাইফেন দিয়ে এটি মোড়ানো
  • এবং শব্দ BEGIN PUBLIC KEY

বরং ব্যবহার করার চেয়ে:

  • -----BEGIN RSA PUBLIC KEY-----
  • -----BEGIN DH PUBLIC KEY-----
  • -----BEGIN EC PUBLIC KEY-----

পরিবর্তে তারা কী অনুসরণ করবে তার অবজেক্ট আইডেন্টিফায়ার (ওআইডি) অন্তর্ভুক্ত করার সিদ্ধান্ত নিয়েছে। আরএসএ পাবলিক কী এর ক্ষেত্রে এটি হ'ল:

  • আরএসএ পিকেসিএস # 1 :1.2.840.113549.1.1.1

সুতরাং আরএসএ পাবলিক কী জন্য এটি মূলত ছিল:

public struct RSAPublicKey {
   INTEGER modulus,
   INTEGER publicExponent 
}

এখন তারা সাবজেক্টপাবলিক কেইআইএনফো তৈরি করেছে যা মূলত:

public struct SubjectPublicKeyInfo {
   AlgorithmIdentifier algorithm,
   RSAPublicKey subjectPublicKey
}

প্রকৃত DER ASN.1 সংজ্ঞাটি হ'ল:

SubjectPublicKeyInfo  ::=  SEQUENCE  {
    algorithm  ::=  SEQUENCE  {
        algorithm               OBJECT IDENTIFIER, -- 1.2.840.113549.1.1.1 rsaEncryption (PKCS#1 1)
        parameters              ANY DEFINED BY algorithm OPTIONAL  },
    subjectPublicKey     BIT STRING {
        RSAPublicKey ::= SEQUENCE {
            modulus            INTEGER,    -- n
            publicExponent     INTEGER     -- e
        }
}

এটি আপনাকে একটি ASN.1 দেয়:

SEQUENCE (2 elements)
   SEQUENCE (2 elements)
      OBJECT IDENTIFIER 1.2.840.113549.1.1.1
      NULL
   BIT STRING (1 element)
      SEQUENCE (2 elements)
         INTEGER (2048 bit): EB506399F5C612F5A67A09C1192B92FAB53DB28520D859CE0EF6B7D83D40AA1C1DCE2C0720D15A0F531595CAD81BA5D129F91CC6769719F1435872C4BCD0521150A0263B470066489B918BFCA03CE8A0E9FC2C0314C4B096EA30717C03C28CA29E678E63D78ACA1E9A63BDB1261EE7A0B041AB53746D68B57B68BEF37B71382838C95DA8557841A3CA58109F0B4F77A5E929B1A25DC2D6814C55DC0F81CD2F4E5DB95EE70C706FC02C4FCA358EA9A82D8043A47611195580F89458E3DAB5592DEFE06CDE1E516A6C61ED78C13977AE9660A9192CA75CD72967FD3AFAFA1F1A2FF6325A5064D847028F1E6B2329E8572F36E708A549DDA355FC74A32FDD8DBA65
         INTEGER (24 bit): 010001

ASN.1 এ চূড়ান্ত বাইনারি এনকোডিংটি হ'ল:

30 82 01 22          ;SEQUENCE (0x122 bytes = 290 bytes)
|  30 0D             ;SEQUENCE (0x0d bytes = 13 bytes) 
|  |  06 09          ;OBJECT IDENTIFIER (0x09 = 9 bytes)
|  |  2A 86 48 86   
|  |  F7 0D 01 01 01 ;hex encoding of 1.2.840.113549.1.1
|  |  05 00          ;NULL (0 bytes)
|  03 82 01 0F 00    ;BIT STRING  (0x10f = 271 bytes)
|  |  30 82 01 0A       ;SEQUENCE (0x10a = 266 bytes)
|  |  |  02 82 01 01    ;INTEGER  (0x101 = 257 bytes)
|  |  |  |  00             ;leading zero of INTEGER
|  |  |  |  EB 50 63 99 F5 C6 12 F5  A6 7A 09 C1 19 2B 92 FA 
|  |  |  |  B5 3D B2 85 20 D8 59 CE  0E F6 B7 D8 3D 40 AA 1C 
|  |  |  |  1D CE 2C 07 20 D1 5A 0F  53 15 95 CA D8 1B A5 D1 
|  |  |  |  29 F9 1C C6 76 97 19 F1  43 58 72 C4 BC D0 52 11 
|  |  |  |  50 A0 26 3B 47 00 66 48  9B 91 8B FC A0 3C E8 A0
|  |  |  |  E9 FC 2C 03 14 C4 B0 96  EA 30 71 7C 03 C2 8C A2  
|  |  |  |  9E 67 8E 63 D7 8A CA 1E  9A 63 BD B1 26 1E E7 A0  
|  |  |  |  B0 41 AB 53 74 6D 68 B5  7B 68 BE F3 7B 71 38 28
|  |  |  |  38 C9 5D A8 55 78 41 A3  CA 58 10 9F 0B 4F 77 A5
|  |  |  |  E9 29 B1 A2 5D C2 D6 81  4C 55 DC 0F 81 CD 2F 4E 
|  |  |  |  5D B9 5E E7 0C 70 6F C0  2C 4F CA 35 8E A9 A8 2D 
|  |  |  |  80 43 A4 76 11 19 55 80  F8 94 58 E3 DA B5 59 2D
|  |  |  |  EF E0 6C DE 1E 51 6A 6C  61 ED 78 C1 39 77 AE 96 
|  |  |  |  60 A9 19 2C A7 5C D7 29  67 FD 3A FA FA 1F 1A 2F 
|  |  |  |  F6 32 5A 50 64 D8 47 02  8F 1E 6B 23 29 E8 57 2F 
|  |  |  |  36 E7 08 A5 49 DD A3 55  FC 74 A3 2F DD 8D BA 65
|  |  |  02 03          ;INTEGER (03 = 3 bytes)
|  |  |  |  010001

এবং পূর্বের মতো আপনি এই সমস্ত বাইটগুলি নিয়ে যান, বেস 64 এগুলি এনকোড করে আপনার দ্বিতীয় উদাহরণটি দিয়ে শেষ করে:

MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA61BjmfXGEvWmegnBGSuS
+rU9soUg2FnODva32D1AqhwdziwHINFaD1MVlcrYG6XRKfkcxnaXGfFDWHLEvNBS
EVCgJjtHAGZIm5GL/KA86KDp/CwDFMSwluowcXwDwoyinmeOY9eKyh6aY72xJh7n
oLBBq1N0bWi1e2i+83txOCg4yV2oVXhBo8pYEJ8LT3el6Smxol3C1oFMVdwPgc0v
Tl25XucMcG/ALE/KNY6pqC2AQ6R2ERlVgPiUWOPatVkt7+Bs3h5Ramxh7XjBOXeu
lmCpGSynXNcpZ/06+vofGi/2MlpQZNhHAo8eayMp6FcvNucIpUndo1X8dKMv3Y26
ZQIDAQAB   

কিছুটা আলাদা হেডার এবং ট্রেলার যুক্ত করুন এবং আপনি পাবেন:

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA61BjmfXGEvWmegnBGSuS
+rU9soUg2FnODva32D1AqhwdziwHINFaD1MVlcrYG6XRKfkcxnaXGfFDWHLEvNBS
EVCgJjtHAGZIm5GL/KA86KDp/CwDFMSwluowcXwDwoyinmeOY9eKyh6aY72xJh7n
oLBBq1N0bWi1e2i+83txOCg4yV2oVXhBo8pYEJ8LT3el6Smxol3C1oFMVdwPgc0v
Tl25XucMcG/ALE/KNY6pqC2AQ6R2ERlVgPiUWOPatVkt7+Bs3h5Ramxh7XjBOXeu
lmCpGSynXNcpZ/06+vofGi/2MlpQZNhHAo8eayMp6FcvNucIpUndo1X8dKMv3Y26
ZQIDAQAB   
-----END PUBLIC KEY-----

এবং এটি আপনার এক্স.509 সাবজেক্টপব্লিককিইআইএনফো / ওপেনএসএসএল পিইএম সর্বজনীন কী [২]

এটি সঠিকভাবে করুন, বা এটি হ্যাক করুন

এখন আপনি যে জানেন যে এনকোডিংটি যাদু নয়, আপনি আরএসএ মডিউল এবং এক্সপোনেন্টটি বিশ্লেষণের জন্য প্রয়োজনীয় সমস্ত টুকরো লিখতে পারেন। অথবা আপনি বুঝতে পারবেন যে প্রথম 24 বাইটগুলি কেবলমাত্র মূল পিকেসিএস # 1 মানের শীর্ষে নতুন স্টাফ যুক্ত করা হয়েছে

30 82 01 22          ;SEQUENCE (0x122 bytes = 290 bytes)
|  30 0D             ;SEQUENCE (0x0d bytes = 13 bytes) 
|  |  06 09          ;OBJECT IDENTIFIER (0x09 = 9 bytes)
|  |  2A 86 48 86   
|  |  F7 0D 01 01 01 ;hex encoding of 1.2.840.113549.1.1
|  |  05 00          ;NULL (0 bytes)
|  03 82 01 0F 00    ;BIT STRING  (0x10f = 271 bytes)
|  |  ...

এই প্রথম 24-বাইটগুলি হ'ল "নতুন" স্টাফ যুক্ত:

30 82 01 22 30 0D 06 09 2A 86 48 86 F7 0D 01 01 01 05 00 03 82 01 0F 00

এবং ভাগ্য এবং সৌভাগ্যের এক অসাধারণ কাকতালীয় কারণে:

24 বাইট 32 বেস 64 এনকোডেড অক্ষরের সাথে যথাযথভাবে মিলিত হয়

কারণ বেস 64 এ: 3-বাইট চারটি অক্ষর হয়ে যায়:

30 82 01  22 30 0D  06 09 2A  86 48 86  F7 0D 01  01 01 05  00 03 82  01 0F 00
\______/  \______/  \______/  \______/  \______/  \______/  \______/  \______/
    |         |         |         |         |         |         |         |
  MIIB      IjAN      Bgkq      hkiG      9w0B      AQEF      AAOC      AQ8A

এর অর্থ যদি আপনি আপনার দ্বিতীয় X.509 পাবলিক কী নেন তবে প্রথম 32 টি অক্ষর কেবল নতুন যুক্ত হওয়া সামগ্রীর সাথে মিল রাখে:

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
MIIBCgKCAQEA61BjmfXGEvWmegnBGSuS+rU9soUg2FnODva32D1AqhwdziwHINFa
D1MVlcrYG6XRKfkcxnaXGfFDWHLEvNBSEVCgJjtHAGZIm5GL/KA86KDp/CwDFMSw
luowcXwDwoyinmeOY9eKyh6aY72xJh7noLBBq1N0bWi1e2i+83txOCg4yV2oVXhB
o8pYEJ8LT3el6Smxol3C1oFMVdwPgc0vTl25XucMcG/ALE/KNY6pqC2AQ6R2ERlV
gPiUWOPatVkt7+Bs3h5Ramxh7XjBOXeulmCpGSynXNcpZ/06+vofGi/2MlpQZNhH
Ao8eayMp6FcvNucIpUndo1X8dKMv3Y26ZQIDAQAB
-----END PUBLIC KEY-----

যদি আপনি প্রথম 32 টি অক্ষর সরিয়ে থাকেন এবং এটিকে শুরু করেন বিগইন আরএসএ পাবলিক কী :

-----BEGIN RSA PUBLIC KEY-----
MIIBCgKCAQEA61BjmfXGEvWmegnBGSuS+rU9soUg2FnODva32D1AqhwdziwHINFa
D1MVlcrYG6XRKfkcxnaXGfFDWHLEvNBSEVCgJjtHAGZIm5GL/KA86KDp/CwDFMSw
luowcXwDwoyinmeOY9eKyh6aY72xJh7noLBBq1N0bWi1e2i+83txOCg4yV2oVXhB
o8pYEJ8LT3el6Smxol3C1oFMVdwPgc0vTl25XucMcG/ALE/KNY6pqC2AQ6R2ERlV
gPiUWOPatVkt7+Bs3h5Ramxh7XjBOXeulmCpGSynXNcpZ/06+vofGi/2MlpQZNhH
Ao8eayMp6FcvNucIpUndo1X8dKMv3Y26ZQIDAQAB
-----END RSA PUBLIC KEY-----

আপনি যা চেয়েছিলেন তা হ'ল - পুরানো RSA PUBLIC KEYফর্ম্যাট।


29
পবিত্র বল, তথ্য ছিল! ধন্যবাদ. এটি আমার সমস্যাটি একটি অজগর লোকটির সাথে সমাধান করেছে যিনি কেবল শুরু শুরু করেছিলেন আরএসএ পাবলিক কী। যদিও, আপনার শেষ উদাহরণে, দেখে মনে হচ্ছে আপনি 32 টি অক্ষর মুছে ফেলতে ভুলে গেছেন।
নালভক্সপপুলি

ফাইলগুলির হেক্স কাঠামোটি মুদ্রণের জন্য আপনি কোন সরঞ্জামটি ব্যবহার করেছেন?
বুগ

7
@ বুগ আমি দুর্দান্ত, দুর্দান্ত, এএসএন .১ জাভাস্ক্রিপ্ট ডিকোডার ব্যবহার করেছি । যেটি এবং অনুবাদক, বিনারি আপনার কৌশলগুলির সরঞ্জামবাক্সে থাকার জন্য দুটি দুর্দান্ত সরঞ্জাম।
আয়ান বয়ড

4
মডিউলাসের শুরুতে একটি অতিরিক্ত "1" অক্ষর রয়েছে। এটি এর মতোই শুরু হওয়া উচিত ... 297,056,429,939,040,947,991,047,334,197,581,225,628,107,02,573 ... তবে এটি নয় ... 297,056,429,939,040,947,991,047,329,939,040,947,991,047,329,939,040,940,91,01,01,01,01,01,015,015,015,015,015,015,015,015,015,015,015,015,015,815- এ রয়েছে
এম্পাথিকসেজ


52

আমি এই ওয়েবসাইটটি বিভিন্ন ফর্ম্যাটের একটি ভাল প্রযুক্তিগত ব্যাখ্যা হিসাবে পেয়েছি: https://polarssl.org/kb/cryptography/asn1-key-structures-in-der-and-pem

"বিগইন আরএসএ পাবলিক কী" পিকেসিএস # 1, যাতে কেবল আরএসএ কী থাকতে পারে।

"বিগইন পাবলিক কী" হ'ল পিকেসিএস # 8, এতে বিভিন্ন ফর্ম্যাট থাকতে পারে।

আপনি যদি তাদের কেবল কমান্ড-লাইনের সাথে রূপান্তর করতে চান তবে "ওপেনসেল আরএসএ" এর জন্য ভাল।

পিকেসিএস # 8 থেকে পিকেসিএস # 1 তে রূপান্তর করতে:

openssl rsa -pubin -in <filename> -RSAPublicKey_out

পিকেসিএস # 1 থেকে পিকেসিএস # 8 এ রূপান্তর করতে:

openssl rsa -RSAPublicKey_in -in <filename> -pubout

4
আমি পিকেসিএস # 8 ( আরএফসি 5208 ) সার্বজনীন কী সম্পর্কে কিছুই খুঁজে পাচ্ছি না ।
ফ্রাঙ্কলিন ইউ

MacOS এ কাজ করে না:unknown option -RSAPublicKey_in
নাকাজুয়েস

4
@ ফ্র্যাঙ্কলিনইউ: হ্যাঁ পিকেসিএস ৮ কেবলমাত্র প্রাইভেটকি এবং পোলারসেল এই বিষয়টিতে ভুল। জনকেন্দ্রিয়ের জেনেরিক ফর্মটি X.509 দ্বারা সংজ্ঞায়িত করা হয়েছে এবং বিশেষত ইয়ান বয়েডের (দীর্ঘ!) উত্তরে যথাযথভাবে বর্ণিত সাবজেক্টপাবলিক কেইআইএনফোও টাইপ করা হয়েছে; আরএফসি 3279-তে 'বেসিক' আরএসএ সহ অ্যালগরিদমের উপর নির্ভর করে আরএফসি5280 প্লাসের অন্যান্য আরএফসিগুলিতে এই তথ্যটি (আরও স্বাচ্ছন্দ্যে) অনুলিপি করা হয়েছে।
dave_thompson_085

@ নাকাজুইস: আপনার ওপেনএসএসএল সংস্করণ 1.0.0 (প্রকাশিত 2010) বা তার বেশি প্রয়োজন। এআইইউআই অ্যাপল ওএস (এক্স) এ ওপেনএসএসএল সমর্থন করা বন্ধ করে দিয়েছে, যাতে আপনার ব্রু বা এর অনুরূপ কোনও সংস্করণের প্রয়োজন হতে পারে।
dave_thompson_085

এটি আমাকে ওপেনএসএসএইচ ফর্ম্যাট থেকে রূপান্তর করার জন্য সঠিক দিকে পেয়েছে। আমি এসএস-কীজেন এর মতো ব্যবহার করে শেষ করেছি: ssh-keygen -i -f ~ / .ssh / id_rsa.pub -e -m PKCS8> ~ / .ssh / id_rsa.pub.pem
ব্র্যাডলি ক্রাইডার

13

যদিও 32 বাইট শিরোনাম, ওআইডি ফর্ম্যাটগুলি এবং এ জাতীয় উপরোক্ত মন্তব্যগুলি আকর্ষণীয়, তবে আমি ব্যক্তিগতভাবে একই আচরণ দেখতে পাচ্ছি না, ধরে নিই আমি পয়েন্টটি পেয়ে যাচ্ছি। আমি ভেবেছিলাম এটি কীভাবে অতিরিক্ত বিশদ বলে মনে হতে পারে এটিকে আরও অনুসন্ধান করতে সহায়ক হতে পারে। কোনও কিছুর অতিরিক্তের চেয়ে বেশি হয় না।

শুরু করতে, আমি একটি আরএসএ ব্যক্তিগত কী তৈরি করেছি এবং এটি পরীক্ষা করেছি:

>openssl rsa -in newclient_privatekey.pem  -check
RSA key ok
writing RSA key
-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQCn/OlFk7vLRQ6dBiNQkvjnhm4pOYWo+GeAEmU4N1HPZj1dxv70
4hm80eYc7h12xc7oVcDLBdHByGAGBpQfpjgdPyozC/zSqcuU6iBrvzDTpyG1zhIG
76KrcjdbX6PlKAPO9r/dCRmUijFhVoUlY6ywGknmLBrtZkLkBhchgYnMswIDAQAB
AoGAQaJ5aivspeEXcpahWavzAFLv27+Tz48usUV+stY6arRhqbBEkV19/N5t8EPA
01U6IGDQ8QIXEIW/rtsHKM6DAZhAbakPDJhJRatcMzJ08ryIkP/c3+onkTquiveG
brw7xzn6Xa8ls04aQ6VQR4jxXUjV5bB72pFZnGRoAmS2NiECQQDUoISbmTGjnHM+
kEfunNTXbNmKklwTYhyZaSVsSptnD7CvLWB4qB/g4h2/HjsELag6Z7SlWuYr7tba
H3nBYn35AkEAykFRudMqlBy3XmcGIpjxOD+7huyViPoUpy3ui/Bj3GbqsbEAt9cR
PyOJa1VFa2JqShta1Tdep8LJv1QvgvY7CwJBAML+al5gAXvwEGhB3RXg0fi2JFLG
opZMFbpDCUTkrtu3MeuVC7HbTVDpTSpmSO0uCed2D97NG+USZgsnbnuBHdECQQCw
S3FWPXdetQ0srzaMz61rLzphaDULuZhpBMNqnTYeNmMaUcPjewagd3Rf52rkKFun
juKE+Yd7SXGbYWEskT5zAkAD7tbNwe5ryD2CT71jrY/5uXMR2yg/A4Ry2ocZkQUp
iGflLrHnODvHO5LYLBlSKpjanBceYHJLuMFNZruf7uBM
-----END RSA PRIVATE KEY-----

(ওহ, ভয়াবহতা! আমি একটি ব্যক্তিগত কী উন্মুক্ত করেছি Meh মেহ ...)

আমি এর সর্বজনীন কীটি নিষ্কাশন এবং প্রদর্শন করি:

>openssl rsa -in newclient_privatekey.pem -pubout
writing RSA key
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCn/OlFk7vLRQ6dBiNQkvjnhm4p
OYWo+GeAEmU4N1HPZj1dxv704hm80eYc7h12xc7oVcDLBdHByGAGBpQfpjgdPyoz
C/zSqcuU6iBrvzDTpyG1zhIG76KrcjdbX6PlKAPO9r/dCRmUijFhVoUlY6ywGknm
LBrtZkLkBhchgYnMswIDAQAB
-----END PUBLIC KEY-----

এটি এর পরে ঘটে থাকে আর একটি সরকারী কী আউটপুট প্যারামিটার (যেমন পূর্ববর্তী মন্তব্যে উল্লিখিত হয়েছে)। আমি এর পরিবর্তে সেই কীওয়ার্ডটি ব্যবহার করে সর্বজনীন কীটি নিষ্কাশন এবং প্রদর্শন করি:

>openssl rsa -in newclient_privatekey.pem -RSAPublicKey_out
writing RSA key
-----BEGIN RSA PUBLIC KEY-----
MIGJAoGBAKf86UWTu8tFDp0GI1CS+OeGbik5haj4Z4ASZTg3Uc9mPV3G/vTiGbzR
5hzuHXbFzuhVwMsF0cHIYAYGlB+mOB0/KjML/NKpy5TqIGu/MNOnIbXOEgbvoqty
N1tfo+UoA872v90JGZSKMWFWhSVjrLAaSeYsGu1mQuQGFyGBicyzAgMBAAE=
-----END RSA PUBLIC KEY-----

বেশ বেশ. এই দুটি সরকারী কী মান একই নয়, যদিও সেগুলি একই বেসরকারী কী থেকে প্রাপ্ত। অথবা তারা একই? আমি দুটি পাবলিক কী স্ট্রিং কে তাদের নিজস্ব ফাইলগুলিতে কেটে পেস্ট করেছি এবং তারপরে প্রতিটিটির জন্য একটি মডুলাস চেক করব:

>openssl rsa -in newclient_publickey.pem -pubin -modulus
Modulus=
A7FCE94593BBCB450E9D06235092F8E7
866E293985A8F867801265383751CF66
3D5DC6FEF4E219BCD1E61CEE1D76C5CE
E855C0CB05D1C1C8600606941FA6381D
3F2A330BFCD2A9CB94EA206BBF30D3A7
21B5CE1206EFA2AB72375B5FA3E52803
CEF6BFDD0919948A316156852563ACB0
1A49E62C1AED6642E40617218189CCB3
writing RSA key
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCn/OlFk7vLRQ6dBiNQkvjnhm4p
OYWo+GeAEmU4N1HPZj1dxv704hm80eYc7h12xc7oVcDLBdHByGAGBpQfpjgdPyoz
C/zSqcuU6iBrvzDTpyG1zhIG76KrcjdbX6PlKAPO9r/dCRmUijFhVoUlY6ywGknm
LBrtZkLkBhchgYnMswIDAQAB
-----END PUBLIC KEY-----

'পাবিন' আরএসএকে বলেছে যে এটি সত্যিই একটি সর্বজনীন কী বলে মনে করা হচ্ছে , এবং এটি কোনও ব্যক্তিগত কী নয় বলে অভিযোগ করবেন না।

এখন আমরা আরএসএ পাবলিক কীটি নিই, মডুলাসটি প্রদর্শন করি এবং এটি একটি সরল পুরানো 'পাবলিক কী'-এ রূপান্তর করি (আবার, আমাদের এটি ইনপুটটি পাবলিক কী হিসাবে বলতে হবে):

>openssl rsa -in newclient_rsapublickey.pem -RSAPublicKey_in -modulus
Modulus=
A7FCE94593BBCB450E9D06235092F8E7
866E293985A8F867801265383751CF66
3D5DC6FEF4E219BCD1E61CEE1D76C5CE
E855C0CB05D1C1C8600606941FA6381D
3F2A330BFCD2A9CB94EA206BBF30D3A7
21B5CE1206EFA2AB72375B5FA3E52803
CEF6BFDD0919948A316156852563ACB0
1A49E62C1AED6642E40617218189CCB3
writing RSA key
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCn/OlFk7vLRQ6dBiNQkvjnhm4p
OYWo+GeAEmU4N1HPZj1dxv704hm80eYc7h12xc7oVcDLBdHByGAGBpQfpjgdPyoz
C/zSqcuU6iBrvzDTpyG1zhIG76KrcjdbX6PlKAPO9r/dCRmUijFhVoUlY6ywGknm
LBrtZkLkBhchgYnMswIDAQAB
-----END PUBLIC KEY-----

একই মডুলাস এবং একই 'পাবলিক কী' মান প্রদর্শিত হয়। জিনিসগুলিকে আরও আকর্ষণীয় করে তুলতে (যাইহোক, আমার জন্য), যখন আমরা আরএসএপলিটিক্যকি_আউট কীওয়ার্ডটি পরীক্ষা করি তখন:

>openssl rsa -in newclient_rsapublickey.pem -RSAPublicKey_in -modulus -RSAPublicKey_out
Modulus=
A7FCE94593BBCB450E9D06235092F8E7
866E293985A8F867801265383751CF66
3D5DC6FEF4E219BCD1E61CEE1D76C5CE
E855C0CB05D1C1C8600606941FA6381D
3F2A330BFCD2A9CB94EA206BBF30D3A7
21B5CE1206EFA2AB72375B5FA3E52803
CEF6BFDD0919948A316156852563ACB0
1A49E62C1AED6642E40617218189CCB3
writing RSA key
-----BEGIN RSA PUBLIC KEY-----
MIGJAoGBAKf86UWTu8tFDp0GI1CS+OeGbik5haj4Z4ASZTg3Uc9mPV3G/vTiGbzR
5hzuHXbFzuhVwMsF0cHIYAYGlB+mOB0/KjML/NKpy5TqIGu/MNOnIbXOEgbvoqty
N1tfo+UoA872v90JGZSKMWFWhSVjrLAaSeYsGu1mQuQGFyGBicyzAgMBAAE=
-----END RSA PUBLIC KEY-----

... এবং যখন আমরা সরল পুরাতন 'পাবলিক কী' কে আরএসএ পাবলিক কীতে ট্রান্সমোগ্রিফাই করি:

>openssl rsa -in newclient_publickey.pem -pubin -RSAPublicKey_out
writing RSA key
-----BEGIN RSA PUBLIC KEY-----
MIGJAoGBAKf86UWTu8tFDp0GI1CS+OeGbik5haj4Z4ASZTg3Uc9mPV3G/vTiGbzR
5hzuHXbFzuhVwMsF0cHIYAYGlB+mOB0/KjML/NKpy5TqIGu/MNOnIbXOEgbvoqty
N1tfo+UoA872v90JGZSKMWFWhSVjrLAaSeYsGu1mQuQGFyGBicyzAgMBAAE=
-----END RSA PUBLIC KEY-----

... নিরলসভাবে পদযাত্রা করা, এবং যদিও আমরা কিছু কমান্ড আগে সবেমাত্র এটি করেছি, বিষয়টিকে আমরা চারপাশে ফ্লিপ করার জন্য যাতে ট্রান্সমোগ্রিফিকেশনটি আরএসএ থেকে সরল পুরানো 'পাবলিক কী' তে পরিণত হয়:

>openssl rsa -in newclient_rsapublickey.pem -RSAPublicKey_in -pubout
writing RSA key
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCn/OlFk7vLRQ6dBiNQkvjnhm4p
OYWo+GeAEmU4N1HPZj1dxv704hm80eYc7h12xc7oVcDLBdHByGAGBpQfpjgdPyoz
C/zSqcuU6iBrvzDTpyG1zhIG76KrcjdbX6PlKAPO9r/dCRmUijFhVoUlY6ywGknm
LBrtZkLkBhchgYnMswIDAQAB
-----END PUBLIC KEY-----

... যা আমাদের ঠিক যেখানে শুরু হয়েছিল সেখানে নিয়ে যায়। আমরা কী শিখেছি?

সংক্ষিপ্তসার: অভ্যন্তরীণভাবে কীগুলি একই, সেগুলি দেখতে অন্যরকম look পূর্বের একটি মন্তব্য নির্দেশ করেছিল যে আরএসএ কী ফর্ম্যাটটি পিকেসিএস # 1 এ সংজ্ঞায়িত হয়েছিল এবং প্লেইন পুরানো 'পাবলিক কী' ফর্ম্যাটটি পিকেসিএস # 8-এ সংজ্ঞায়িত করা হয়েছিল। যাইহোক, একটি ফর্ম সম্পাদনা এটি অন্যকে রূপান্তরিত করে না। আশা করি আমি এখন এই পার্থক্যকে মৃত্যুর কাছে পরাজিত করেছি।

তবে এখনও জীবনের এক স্ফুলিঙ্গ বাকি আছে, তবে এর থেকে আরও কিছুটা চাপিয়ে দাও এবং এত দিন আগে আরএসএ প্রাইভেট কী দ্বারা মূলত উত্সাহিত করা শংসাপত্রটি উল্লেখ করতে হবে, এর সার্বজনীন কী এবং মডুলাস পরীক্ষা করে:

>openssl x509 -in newclient_cert.pem -pubkey -noout -modulus
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCn/OlFk7vLRQ6dBiNQkvjnhm4p
OYWo+GeAEmU4N1HPZj1dxv704hm80eYc7h12xc7oVcDLBdHByGAGBpQfpjgdPyoz
C/zSqcuU6iBrvzDTpyG1zhIG76KrcjdbX6PlKAPO9r/dCRmUijFhVoUlY6ywGknm
LBrtZkLkBhchgYnMswIDAQAB
-----END PUBLIC KEY-----
Modulus=
A7FCE94593BBCB450E9D06235092F8E7
866E293985A8F867801265383751CF66
3D5DC6FEF4E219BCD1E61CEE1D76C5CE
E855C0CB05D1C1C8600606941FA6381D
3F2A330BFCD2A9CB94EA206BBF30D3A7
21B5CE1206EFA2AB72375B5FA3E52803
CEF6BFDD0919948A316156852563ACB0
1A49E62C1AED6642E40617218189CCB3

... এবং তারা সকলেই সুখী জীবন যাপন করেছিল: শংসাপত্রের আরএসএ পাবলিক কী, আরএসএর ব্যক্তিগত কী এবং সাধারণ পুরানো 'পাবলিক কী' এর মতোই মডুলাসের মান রয়েছে। শংসাপত্রটিতে একই সরল পুরাতন 'পাবলিক কী' মান রয়েছে যা আমরা আগে দেখেছি, যদিও এটি কোনও আরএসএ প্রাইভেট কী হিসাবে চিহ্নিত কোনও ফাইলের সাথে স্বাক্ষর করা হয়েছিল। Sayক্যমত্য আছে তা বলা নিরাপদ।

ওপেনএসএসএল গ্যালাক্সির এক্স509 কোয়াড্রেন্টে কোনও 'আরএসএপলিটিক্যকি_আউট' সমতুল্য কীওয়ার্ড নেই, সুতরাং আমরা এটি চেষ্টা করতে পারি না, যদিও মডিউলাস মানটিকে "আরএসএ কী মডুলাস" হিসাবে বর্ণনা করা হয়েছে যা আমি মনে করি যে আমরা যতটা কাছে আসব ততই নিকটবর্তী।

এটি সমস্ত ডিএসএ-স্বাক্ষরিত শংসাপত্রের সাথে কীভাবে দেখবে, আমি জানি না।

আমি বুঝতে পারি যে এটি আসল প্রশ্নের উত্তর দেয় না, তবে সম্ভবত এটি কিছু দরকারী পটভূমি সরবরাহ করে। যদি না হয় তবে আমার ক্ষমা। খুব কমপক্ষে, না করার মতো জিনিস এবং অনুমানগুলি না করা।

কোনও সন্দেহ নেই যে কেউ "আরএসএ কী লেখার" বিষয়ে সামান্য বিরক্তিকর পুনরাবৃত্তিটি উল্লেখ করেছেন, যখন এটি কোনও কাজ করছে না। আমি ধরে নিচ্ছি এর অর্থ হ'ল আরএসএ মডিউলটি সরল পুরাতন পাবলিক কীটিকে সত্যিকারের আরএসএ কী হিসাবে স্বীকৃতি দেয় এবং সে কারণেই এটি "আরএসএ কী" (আরও এটি আরএসএ মডিউলটি হ'ল) ​​ক্ষতিগ্রস্ত করে চলেছে। আমি যদি সঠিকভাবে স্মরণ করি তবে জেনেরিক EVP_PKEY কাঠামোর সমস্ত মূল প্রকারের জন্য একটি ইউনিয়ন রয়েছে, প্রতিটি কী টাইপের নিজস্ব মানগুলির একটি বিশেষ সেট রয়েছে (সহায়তার সাথে জি, ডাব্লু, কিউ এবং অন্যান্য ব্যঞ্জনাবিযুক্ত)।

উপসংহারে, আমি নোট করছি যে প্রোগ্রামিং এবং বিকাশ সম্পর্কিত একটি অভিযোগ ছিল; এখন, প্রতিটি ওপেনএসএসএল কমান্ডের স্পষ্টতই সংশ্লিষ্ট কোড রয়েছে এবং যদি কেউ আজ ওপেনএসএসএল প্রোগ্রামিংয়ের সমস্ত বিস্ময়কে আবিষ্কার করতে চায় তবে কমান্ড লাইনটি শুরু করার পক্ষে যুক্তিসঙ্গত জায়গা বলে মনে হবে। এই বিশেষ ক্ষেত্রে (যেহেতু আমি এই মুহুর্তে সাম্প্রতিক সাইগউইন ব্যবহার করছি) কেউ \ ওপেনসেল -১.০.২ এফ \ অ্যাপস \ আরএসএ.সি. এবং (দেওয়া ম্যাক্রোগুলির জন্য উচ্চ সহনশীলতা রয়েছে) \ ওপেনসেল -১.০ পর্যালোচনা করে শুরু করতে পারে। 2f \ ক্রিপ্টো \ pem \ pem_all.c


8

আপনার পাব 1 এবং পাব 2 এর মধ্যে পার্থক্য হ'ল শিরোনাম / পাদচরণ ছাড়াও পাব 2: এ অতিরিক্ত স্ট্রিং MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A। যদি আপনি এটি অপসারণ করেন তবে বেস 64 পাব 1 এর মতো।

অতিরিক্ত স্ট্রিং এই উত্তর অনুসারে অ্যালগরিদম শনাক্তকারীর সাথে মিলে যায় ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.