标签: pycrypto

在Python中实现OpenSSL AES加密

我正在尝试在Python中实现以下内容:openssl enc -e -aes-256-cbc -base64 -k"Secret Passphrase"-in plaintext.txt -out ciphertext.txt

openssl enc -d -aes-256-cbc -base64 -k"Secret Passphrase"-in ciphertext.txt -out verification.txt

我已经尝试了几个不同的模块,PyCrypto,M2Crypto等,但似乎无法正确组合将密码更改为正确的大小键并正确编码所有内容.我发现https://github.com/nvie/SimpleAES但基本上在命令行上运行OpenSSL,我宁愿避免.

python openssl aes m2crypto pycrypto

2
推荐指数
1
解决办法
5634
查看次数

HMAC-SHA256采用CBC模式的AES-256

我最近遇到了以下代码示例,用于使用带有SHA-256 HMAC的AES-256 CBC加密文件进行身份验证和验证:

aes_key, hmac_key = self.keys
# create a PKCS#7 pad to get us to `len(data) % 16 == 0`
pad_length = 16 - len(data) % 16
data = data + (pad_length * chr(pad_length))
# get IV
iv = os.urandom(16)
# create cipher
cipher = AES.new(aes_key, AES.MODE_CBC, iv)
data = iv + cipher.encrypt(data)
sig = hmac.new(hmac_key, data, hashlib.sha256).digest()
# return the encrypted data (iv, followed by encrypted data, followed by hmac sig):
return data + sig
Run Code Online (Sandbox Code Playgroud)

因为在我的情况下,我加密的不仅仅是一个字符串,而是一个相当大的文件,我修改了代码来执行以下操作: …

python encryption aes hmac pycrypto

2
推荐指数
1
解决办法
5475
查看次数

Python - Mac上的Crypto.Cipher/Pycrypto?

经过一段谷歌搜索后,我看到这个问题很常见,但没有直接的答案.试图在我的Mac 10.8.5上使用Pycrypto.通过Pip,Easy_install和setup.py手动安装它,但是当我尝试导入它时,它说它找不到模块.

其他人有这样的问题吗?

python macos pycrypto

2
推荐指数
1
解决办法
3852
查看次数

Python pyCrypto RSA加密方法使用私钥或公钥提供相同的结果

我试图理解pyCrypto加密和解密公钥和私钥的方法,我看到一些奇怪的东西.假设我有一组私钥和公钥,存储在文件dummy_private.txt和dummy_public.txt中.

我创建一个私钥对象和公钥对象,如下所示:

private_key_file='dummy_private.txt'
f = open(private_key_file, 'r')
privateKey = RSA.importKey(f.read(),None)
f.close()

public_key_file='dummy_public.txt'
f = open(public_key_file, 'r')
publicKey = RSA.importKey(f.read(),None)
f.close()
Run Code Online (Sandbox Code Playgroud)

现在假设我要加密一些消息.我可以这样做:

s='This is a super secret message'
sutf8=s.encode('utf8')

enc=publicKey.encrypt(sutf8,None)[0]
encb64=base64.encodestring(enc)
print "Public key Encoded message is %s" % (encb64,)
Run Code Online (Sandbox Code Playgroud)

这是有道理的,因为我使用公钥加密,我应该能够使用私钥解密.

但是,我也可以使用私钥加密上面的内容,它给了我相同的结果!

enc2=privateKey.encrypt(sutf8,None)[0]
encb642=base64.encodestring(enc2)
print "Private key Encoded message is %s" % (encb642,)
Run Code Online (Sandbox Code Playgroud)

当我打印出加密数据的base64编码版本时,使用私钥或公钥,它们是相同的!这是为什么?

这引发了使用私钥对数据进行数字签名的问题.如果我可以使用公钥签名并获得相同的结果,那么签名如何验证我是谁,我说的是我?这必须是我不理解的加密方法的一些问题.有人可以解释一下吗?

由于使用公钥和私钥进行加密会产生相同的结果,因此无论使用私钥还是公钥进行加密,都可以完成使用私钥进行解密.我完全不知道为什么可以使用私钥加密并得到与使用公钥完成相同的结果.

python rsa pycrypto

2
推荐指数
1
解决办法
6911
查看次数

在pycrypto中使用RSA的致盲因子

在python中,我试图盲目地解开消息.当我解开消息时,我没有得到原始消息.有谁知道我可能做错了什么.以下是我的代码:

s = 'Hello'
loadedPublic = get_publickey()
loadedPrivate = get_privatekey()

pub = loadedPublic.blind(s,23L)
pub2 = loadedPublic.unblind(pub,23L)
return HttpResponse(pub2)
Run Code Online (Sandbox Code Playgroud)

python cryptography rsa pycrypto

2
推荐指数
1
解决办法
856
查看次数

如何在Pycrypto中使用Blowfish解密?

我找到了一个加密数据的例子,但我找不到任何关于如何解密它的例子.

加密示例:

>>> from Crypto.Cipher import Blowfish
>>> from Crypto import Random
>>> from struct import pack
>>>
>>> bs = Blowfish.block_size
>>> key = b'An arbitrarily long key'
>>> iv = Random.new().read(bs)
>>> cipher = Blowfish.new(key, Blowfish.MODE_CBC, iv)
>>> plaintext = b'docendo discimus '
>>> plen = bs - divmod(len(plaintext),bs)[1]
>>> padding = [plen]*plen
>>> padding = pack('b'*plen, *padding)
>>> msg = iv + cipher.encrypt(plaintext + padding)
Run Code Online (Sandbox Code Playgroud)

我没有找到任何关于如何解密的例子.

python blowfish pycrypto

2
推荐指数
1
解决办法
9055
查看次数

使用Pycrypto(python)的AES解密不起作用。在crypto(Nodejs)中获取正确的解密代码。

在节点中,我正在使用以下代码来获取正确的解密消息:

//npm install --save-dev crypto-js
var CryptoJS = require("crypto-js");
var esp8266_msg = 'IqszviDrXw5juapvVrQ2Eh/H3TqBsPkSOYY25hOQzJck+ZWIg2QsgBqYQv6lWHcdOclvVLOSOouk3PmGfIXv//cURM8UBJkKF83fPawwuxg=';
var esp8266_iv  = 'Cqkbb7OxPGoXhk70DjGYjw==';

// The AES encryption/decryption key to be used.
var AESKey = '2B7E151628AED2A6ABF7158809CF4F3C';

var plain_iv =  new Buffer( esp8266_iv , 'base64').toString('hex');
var iv = CryptoJS.enc.Hex.parse( plain_iv );
var key= CryptoJS.enc.Hex.parse( AESKey );

console.log("Let's ");

// Decrypt
var bytes  = CryptoJS.AES.decrypt( esp8266_msg, key , { iv: iv} );
var plaintext = bytes.toString(CryptoJS.enc.Base64);
var decoded_b64msg =  new Buffer(plaintext , 'base64').toString('ascii');
var decoded_msg =     new Buffer( decoded_b64msg …
Run Code Online (Sandbox Code Playgroud)

python encryption cryptography pycrypto node.js

2
推荐指数
1
解决办法
374
查看次数

PKCS1_PSS sign()方法

我一直在尝试解决问题,但是失败了无数次。我需要使用方法sign(),并且导入了正确的库,但是仍无法识别。

我正在用Python进行编码,这就是我认为重要的内容:

#importing the library
from Crypto.Signature import PKCS1_PSS

[...]
signer = PKCS1_PSS.new(keypair)
sig = PKCS1_PSS.sign(keypair)
Run Code Online (Sandbox Code Playgroud)

但是sign()方法是该库中整个代码中唯一无法识别的东西:

“这种检查可以检测到应该解析但不能解析的名称。由于动态调度和鸭子输入,在有限但有用的情况下,这是可能的。与实例项相比,对顶级和类级项的支持更好。”

有人对如何解决此问题有任何建议或知道我做错了什么吗?

python signature digital-signature pycrypto

2
推荐指数
1
解决办法
745
查看次数

在执行“ pip install pycrypto”之后,如何解决“ No module named'Crypto'的错误?

基本上,我试图将Chemobot引入我自己的聊天室之一,其创建者建议我应该.py在自己的计算机上运行脚本。我几乎没有开始用python编程,到目前为止,我的首要兴趣是运行该文件。

我正在使用:

  • Windows命令提示符(cmd)运行
  • Python 3.6(对此我感到不安,他使用2.7运行代码)
  • Windows 8.1
  • Notepad ++编辑文件
  • 我被提示从此处安装的Visual C ++ 2015 Build Tools 。

我遇到的错误:

但是,当我输入命令时python main.py,出现以下错误:

Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.

C:\Python36>python main.py
Traceback (most recent call last):
  File "main.py", line 2, in <module>
    import chatbot, random, shutil, time, urllib, sys, upsidedown, threading
  File "C:\Python36\chatbot.py", line 3, in <module>
    import requests, codecs, time, json, getpass, threading, os, linecache, sys,
 simplecrypt
  File "C:\Python36\lib\site-packages\simplecrypt\__init__.py", line …
Run Code Online (Sandbox Code Playgroud)

python pycrypto python-3.x

2
推荐指数
1
解决办法
7931
查看次数

如何为Python 3.7.2安装Pycrypto?

安装Pycrypto时,发生编译器错误

我需要安装Pycrypto thrue pip安装

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -Isrc/ -Isrc/inc-msvc/ -Id:\gametest\include -IC:\Python37\include -IC:\Python37\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\cppwinrt" /Tcsrc/winrand.c /Fobuild\temp.win-amd64-3.7\Release\src/winrand.obj
winrand.c
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt\inttypes.h(27): error C2061: ??­? ??????? ? ®???? : ?¤?­????? ?®? "intmax_t"
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt\inttypes.h(28): error C2061: ??­? ??????? ? ®???? : ?¤?­????? …
Run Code Online (Sandbox Code Playgroud)

python pycrypto python-3.x

2
推荐指数
1
解决办法
4987
查看次数