كيفية أداء الثلاثي DES الحسابات في روبي في الست عشري?

StackOverflow https://stackoverflow.com/questions/3149288

  •  01-10-2019
  •  | 
  •  

سؤال

أنا أحاول أن أفعل بعض تشفير DES الثلاثي في روبي.أحاول تكرار النتائج من هذه الصفحة: http://da.nmilne.com/des.html

أنا أحاول أن تكرار هذه النتيجة في روبي.وأظن أن المشكلة الرئيسية هي من المفترض أن تكون سلسلة ، ولكن أريد أن تمر في الست عشري الرئيسية.إما هذا أو سلسلة يتم تشفيرها في تنسيق خاطئ.أو ربما على حد سواء.:-)

require 'openssl'
des = OpenSSL::Cipher::Cipher.new("des-ede-cbc")
des.encrypt
des.key="23232323232323234545454545454545"
des.update("0000000000000000")
res=des.final
res.unpack('H*')  
=> ["5045c5d37ca4d13b"]

ولكن يجب أن يكون:

=> ["3a42d7a1d1c60c40"]

أي مؤشرات على أين أنا ذاهب خاطئ ؟

هل كانت مفيدة؟

المحلول

المفتاح هو في عرافة إذا نظرتم جافا الصفحة يمكنك لصق يمكنك أن ترى بسهولة عن طريق فك ثنائي القيم الرئيسية في الإخراج مفصلة.

>> des_cbc=OpenSSL::Cipher::Cipher.new("des-ede-cbc")
=> #<OpenSSL::Cipher::Cipher:0x10116ce28>
>> des_cbc.encrypt
=> #<OpenSSL::Cipher::Cipher:0x10116ce28>
>> des_cbc.key="\x23"*8 << "\x45"*8
=> "########EEEEEEEE"
>> des_cbc.update("\x00"*8).unpack('H*')
=> ["3a42d7a1d1c60c40"]
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top