چرا OpenSSL و پایتون یک اثر انگشت SSL متفاوت را باز می گردانند؟

از طریق getmail، ابزاری که در پایتون نوشته شده است، برای پست الکترونیکی خود از طریق IMAP بازیابی می کند. امروز آن را به طور ناگهانی متوقف کار، زیرا در مورد عدم انطباق اثر انگشت SSL شکایت می کند. (من همیشه اثر انگشت را برای چک کردن در فایل پیکربندی getmail مشخص می کنم و این اثر انگشت را از ابزار خط فرمان OpenSSL دریافت می کنم.)

بر اساس خط فرمان openssl زیر، اثر انگشت گواهینامه SSL 393c7c58738fa6643cedd9943ffb6e951b2d3b576991d9671d86921ee79bb68a :

 openssl s_client -connect onza.mythic-beasts.com:443 < /dev/null 2> / dev / null 
| openssl x509 -fingerprint -sha256 -noout -in / dev / stdin 
| برش -f2 -d = | tr -d: | tr '[:upper:]' '[:lower:]'

با این حال، طبق گواهی نامه جی تیما و پیمان ساده انگشتی زیر (که من اساسا از کد منبع دریافتی پاره شد)، گواهی در واقع 63d1c9e28c51aebd0c26463563be30e4df6814fa5406bab1787d1b9bdd19f15e .

 #! / usr / bin / env python

import imaplib
واردات هشلیب

conn = imaplib.IMAP4_SSL ('onza.mythic-beasts.com')
sslobj = conn.ssl ()
peercert = sslobj.getpeercert (راست)
actual_hash = hashlib.sha256 (peercert) .hexdigest (). پایین ()
چاپ (actual_hash)
conn.logout ()

من نتایج مشابهی را در بسیاری از رایانه های مختلفی که توزیع های گنو / لینوکس مختلف دارند و به شبکه های مختلف متصل می شوند، مشاهده می کنم.

چرا openssl و Python گزارش های مختلف اثر انگشت را برای یک میزبان مشابه گزارش می کنند؟ چگونه می دانم کدام یک درست است؟ آیا پایتون یا OpenSSL ممکن است کپی قدیمی از گواهی را ذخیره کند؟ اگر چنین است، چگونه حافظه کش را پاک کنم؟

پایتون چگونه برای بازگرداندن خروجی mt_rand از str_shuffle engineer (PHP) معکوس شود

 $ خروجی = str_shuffle ("12345")؛

به عنوان مثال $ خروجی در حال حاضر 25134
چگونه می توانم از اعداد mt_rand () بیرون بیایم تا اجازه استفاده از python را بگیرم
من می خواهم این را بدانم زیرا می خواهم بذر mt_rand () و str_shuffle () از mt_rand () استفاده می کند که از رمزنگاری ایمن نیست زیرا از Mersenne Twister استفاده می کند (ویکی پدیا) من می دانم زدن برای پایتون استفاده از فیش Yates زدن (ویکی پدیا)
اما من هیچ نظری ندارم که چگونه در php کار می کند. شما می توانید از دانه استفاده کنید اگر شما 624 خروجی با استفاده از mersenne-twister-recover (GitHub) داشته باشید یا می توانید بذر را با خس خس (GitHub)