Как получить имя метода вызывающего в вызываемом методе?

Асимметричное шифрование (например, с помощью RSA) полезно только для коротких сообщений. При использовании 1024-битного ключа RSA (типичный размер) максимальный размер входного сообщения составляет 117 байт.

«Обычная» настройка заключается в выборе случайного секретного ключа (то есть пучка случайных бит) шифровать этот ключ с помощью RSA и шифровать остальную часть сообщения симметрично (т.е. с помощью симметричного шифра, такого как AES), используя этот ключ. Симметричные шифры не имеют таких ограничений размера и намного быстрее, чем асимметричное шифрование.

Теперь так получилось, что даже если теория может выглядеть просто, есть очень много деталей, которые могут сделать реализацию во многих случаях, в том числе, чтобы код отображался для правильной работы, будучи открытым для атак (а точка криптографии - противостоять атакам). Таким образом, правильный способ - использовать существующий протокол, который уже охватывает эти детали, а также реализацию, которая была разработана и настроена для этого. Наиболее распространенным протоколом для этого является TLS (также известный как SSL). C # /. NET, похоже, имеет класс System.Net.Security.SslStream, который, вероятно, вы хотите.

145
задан codeforester 24 September 2018 в 22:30
поделиться

1 ответ

inspect.getframeinfo и другие связанные функции в inspect могут помочь:

>>> import inspect
>>> def f1(): f2()
... 
>>> def f2():
...   curframe = inspect.currentframe()
...   calframe = inspect.getouterframes(curframe, 2)
...   print('caller name:', calframe[1][3])
... 
>>> f1()
caller name: f1

этот самоанализ предназначен для помощи при отладке и разработке; не рекомендуется полагаться на него для производственной функциональности.

208
ответ дан 23 November 2019 в 21:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: