Ai đó có thể cung cấp cho tôi mã để mã hóa/giải mã sử dụng m2crypto AES256 CBC sử dụng PythonM2Crypto Encrypt/Decrypt sử dụng AES256
Trả lời
Khi nói đến an ninh không có gì nhịp đập đọc tài liệu.
http://chandlerproject.org/bin/view/Projects/MeTooCrypto
Thậm chí nếu tôi dành thời gian để hiểu và làm cho đoạn code hoàn hảo để bạn có thể sao chép và dán, bạn sẽ không có ý tưởng nếu tôi đã làm một công việc tốt hay không. Không phải là rất hữu ích tôi biết, nhưng tôi muốn bạn may mắn và dữ liệu an toàn.
Liên kết đó không còn giá trị. –
Tài liệu của M2Crypto thật khủng khiếp. Đôi khi tài liệu OpenSSL (m2crypto wraps OpenSSL) có thể giúp bạn. Đặt cược tốt nhất của bạn là xem xét các bài kiểm tra đơn vị M2Crypto - http://svn.osafoundation.org/m2crypto/trunk/tests/test_evp.py - tìm phương pháp test_AES()
.
+1 ... joe, câu trả lời này được nhiều người đánh giá cao trong khi tôi đang làm việc cho một dự án thú cưng. Tôi đã bắt đầu nghĩ rằng tôi đã được hạt khi nhìn vào các tài liệu M2Crypto và, um, thưa thớt nhận xét epydoc API; chắc chắn, tôi đã thiếu một cái gì đó hiển nhiên! Cảm ơn vì đã phục hồi đức tin của tôi. –
Hãy xem m2secret:
tiện ích nhỏ và mô-đun cho mã hóa và giải mã dữ liệu sử dụng thuật toán đối xứng-key. Theo mặc định, sử dụng AES 256 bit (Rijndael) bằng CBC, nhưng một số tùy chọn có thể định cấu hình được. Thuật toán PBKDF2 được sử dụng để lấy được khóa từ mật khẩu.
def encrypt_file(key, in_filename, out_filename,iv):
cipher=M2Crypto.EVP.Cipher('aes_256_cfb',key,iv, op=1)
with open(in_filename, 'rb') as infile:
with open(out_filename, 'wb') as outfile:
outfile.write(b)
while True:
buf = infile.read(1024)
if not buf:
break
outfile.write(cipher.update(buf))
outfile.write(cipher.final())
outfile.close()
infile.close()
def decrypt_file(key, in_filename, out_filename,iv):
cipher = M2Crypto.EVP.Cipher("aes_256_cfb",key , iv, op = 0)
with open(in_filename, 'rb') as infile:
with open(out_filename, 'wb') as outfile:
while True:
buf = infile.read(1024)
if not buf:
break
try:
outfile.write(cipher.update(buf))
except:
print "here"
outfile.write(cipher.final())
outfile.close()
infile.close()
tôi sử dụng wrapper sau khoảng M2Crypto (mượn từ cryptography.io):
import os
import base64
import M2Crypto
class SymmetricEncryption(object):
@staticmethod
def generate_key():
return base64.b64encode(os.urandom(48))
def __init__(self, key):
key = base64.b64decode(key)
self.iv = key[:16]
self.key = key[16:]
def encrypt(self, plaintext):
ENCRYPT = 1
cipher = M2Crypto.EVP.Cipher(alg='aes_256_cbc', key=self.key, iv=self.iv, op=ENCRYPT)
ciphertext = cipher.update(plaintext) + cipher.final()
return base64.b64encode(ciphertext)
def decrypt(self, cyphertext):
DECRYPT = 0
cipher = M2Crypto.EVP.Cipher(alg='aes_256_cbc', key=self.key, iv=self.iv, op=DECRYPT)
plaintext = cipher.update(base64.b64decode(cyphertext)) + cipher.final()
return plaintext
- 1. Mật mã EXP (ORT) và M2Crypto/OpenSSL
- 2. Mã hóa NSString AES256 trong iOS
- 3. AES256 trên Java so với PHP
- 4. Làm cách nào để cài đặt M2Crypto trên Ubuntu?
- 5. C# Ví dụ về mã hóa AES256 bằng System.Security.Cryptography.Aes
- 6. https với ECDHE-ECDSA-AES256-GCM-SHA384 trong cửa sổ 2012
- 7. Các mật mã 'AES256-CBC' là cần thiết, nhưng nó không phải là có sẵn
- 8. Jsch Cách sử dụng lại phiên
- 9. Cách thêm đệm vào dữ liệu để có thể chấp nhận thuật toán mã hóa AES256 trong thư viện pycrypto
- 10. Giải mã mã hóa AES256 có thể thực hiện được trong Java mà không có các tệp JCE sức mạnh không giới hạn không?
- 11. Sử dụng thời gian sử dụng jQuery
- 12. sử dụng muối khi sử dụng SimpleMembershipProvider
- 13. Cách sử dụng EF (khung pháp nhân) sử dụng câu lệnh "sử dụng"
- 14. MySQL không sử dụng chỉ mục ("Sử dụng filesort") khi sử dụng ORDER BY
- 15. Cách sử dụng 'sử dụng' hoặc 'sử dụng' bằng ngôn ngữ lập trình
- 16. Sử dụng Ngày Sử dụng Sqlalchemy trong Bộ lọc Sử dụng Postgresql
- 17. Sử dụng dịch vụ web bằng cách sử dụng Javascript
- 18. Sử dụng libtool mà không cần sử dụng liên kết
- 19. Android: Cách sử dụng "sử dụng thư viện"?
- 20. Để sử dụng OpenID hay không sử dụng?
- 21. cách sử dụng không sử dụng phiên tạo
- 22. Luôn sử dụng; không bao giờ sử dụng địa phương?
- 23. sử dụng từ khóa "đang sử dụng" trong C#
- 24. SQL Server NẾU KHÔNG SỬ DỤNG SỬ DỤNG?
- 25. Khi nào sử dụng, không sử dụng, OneToOne và ManyToOne
- 26. Sử dụng câu lệnh "sử dụng" để xử lý
- 27. Cách sử dụng mạng của quy trình sử dụng Powershell
- 28. Không thể sử dụng một EntityTransaction khi sử dụng JTA
- 29. sử dụng đúng cách "Sử dụng" tuyên bố cho DataContext
- 30. Sử dụng kênh trực tiếp so với sử dụng Proxy?
Bạn có thể có một cái nhìn một [tại bài này] [1]. [1]: http://stackoverflow.com/questions/5003626/problem-with-m2cryptos-aes – ohe