Почему PyCrypto требует компилятора C?

Если у вас установлено Node.js , это сделает все возможное, чтобы найти PI для вас, хотя лучше всего не очень хорошо:

node -e 'for(a=0,b=4E8,m=Math,r=m.random;b--;)a+=(1>m.sqrt((c=r())*c+(d=r())*d));console.log(a/1E8)'

Выходные выходы:

3.14157749
3.1416426
3.14159055
3.14171554
3.14176165
3.14157587
3.14161137
3.14167685
3.14172371

-121----12673-

Вы можете возобновить вновь выполненные команды / процессы с использованием Snoopy .

Если вам нужен простой регистратор, и вы не ищете решение для безопасности / аудита, то Snoopy может быть это.

Раскрытие: Снупи-сопровождающий здесь.

0
25.04.2014, 21:53
1 ответ
[113795]Криптография включает в себя интенсивные численные вычисления, которые выполняются значительно быстрее при реализации на низкоуровневом языке, таком как C, и компилируются в машинный код, чем при реализации на высокоуровневом языке, таком как Python, и выполняются в интерпретируемом байткоде. Поэтому следует ожидать, что любая библиотека, предоставляющая базовые криптографические примитивы, по крайней мере частично будет написана на C (или даже ассемблере).

Однако, на Python есть некоторые криптографические примитивы: модули

hashlib

и

hmac

Section "ServerFlags"
  Option "DontVTSwitch" "on"
EndSection

предоставляют наиболее распространенные алгоритмы дайджеста (MD5, SHA-1, SHA-2) и соответствующие алгоритмы HMAC. Кроме того, на Python встроена целочисленная арифметика произвольной точности, что позволяет эффективно реализовывать некоторые асимметричные алгоритмы на чистом Python (по крайней мере, подписание и верификация, не обязательно генерация ключей). [114308]Python-RSA[114309] ([114310]rsa[114311]) является чисто питоновской реализацией RSA PKCS#1 1.5.

Python не поставляется с какими-либо алгоритмами шифрования (в частности AES), так как распространение кода шифрования юридически ограничено во многих частях света. Внешняя библиотека [114312]официально рекомендуемая [114313] - это [114314]PyCrypto[114315].

Вам следует установить PyCrypto. Это было бы в стандартной библиотеке, если бы не юридические ограничения. Большинство дистрибутивов включают в себя пакет PyCrypto. Если нет (я не знаком с Levinux), вам нужно будет установить gcc. Если в вашем дистрибутиве отсутствует gcc (или кросс-компиляционная система, чтобы легко компилировать пакеты на более полной системе), это не подходит для серьезной работы.[113804].
3
28.01.2020, 02:28

Теги

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