anlegen würde Ich mag dieses Unix-Skript o Rubin migrieren:eine digitale Signatur in Ruby ohne Kommandozeile
echo -n "loremipsum" | openssl dgst -md5 -hex -sign keys/#02299991.privKey.pem
Das Ergebnis ist folgendes:
(stdin)= 08d9d6496a5146bc1955ad35c884e3b843d441eebc9ed7908b220e9414132dad57dc0f4744e5ec4a9a819e20f4099e2c90186b4684b3b52d1409dd4ca5bc86e7c16dbb64e6cf41d695a7e979744616fe92e5347a7acbb1e1da902d3cfc629927adf3e119f33d2cbc89f90f9494d44becbf93855d09460a67e2615e7d8df7e4f8
ich folgendes bin mit Code:
key = OpenSSL::PKey::RSA.new(File.read("keys/#02299991.privKey.pem"))
md5_hash = Digest::MD5.hexdigest 'loremipsum' # result: 65a73f29730d3519bd7dd98ab954ed56
key.private_encrypt md5_hash
Und das ist das Problem private_encrypt wird, erzeugt eine ganz andere Hash von dem einen, die ich mit Co erzeugt mmand line:
"B62\xDA\x80\xF9\xFF]\xCE;\a\xB3)fC\xA8v\x9EM5\xF8Z\xA9\x00\b\xA4\x95 \x84\x8A\xD6:\xDA\xCE\x1D\x01\x9F&\xEB\xD5\xD6\xDF\xC0\v\xD8i\xA0\x86\x8E\e`\x98\xB9\x19\xEC\xA7\x8A\\.\xD1\xCC\xFC\x93\x1C\xFF\xFFh\xAFw\t\xFF\xC8Z\xEC\xBDP\x9C_\x03%\x85:\x04\x1C=\xF3\xAC\xE1\x917TO\x94\xB2\x9Fd`3\x98\x04\x93\xBFS\\\xD1Z\xF9\xBD\x91\xE3\xA1:\xA3B22U_FI'`0i\x8D(\x9B`"
was ist los?
Ihr 'openssl'-Befehl erzeugt einen signierten MD5-Digest aus den Daten. Ihr Ruby-Code erzeugt einen (unsignierten) MD5-Digest und verschlüsselt dann den Hex-Digest mit RSA. Das sind wirklich verschiedene Dinge. –