社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

如何在python中加密特定语言?

Harshit Trivedi • 5 年前 • 1643 次点击  

我已经加密了一些数据。这里我的加密转换器是aes-256-cbc。

import base64
import hashlib
from Crypto import Random
from Crypto.Cipher import AES

class AESCipher(object):

   def __init__(self, key):  
       self.key = hashlib.sha256(key.encode()).digest()


   def encrypt(self, raw):
       raw = self._pad(raw)
       iv = Random.new().read(AES.block_size)
       cipher = AES.new(self.key, AES.MODE_CBC, iv)
       return base64.b64encode(iv + cipher.encrypt(raw))

    def _pad(self, s):
       return s + (AES.block_size- len(s) % AES.block_size) * chr(AES.block_size - len(s) % AES.block_size)


 key = some key
 raw='한글 (한국말)이라고도하는 한국어는 남한과 한국의 공식 언어입니다'
 AESCipher_obj=AESCipher(key)
 val = AESCipher_obj.encrypt(raw)
 print(val)

当我执行我的代码时,它会给我这个错误。

 > Traceback (most recent call last):   File "aes2.py", line 27, in
    > <module>
    >     s= AESCipher_obj.encrypt(raw)   File "aes2.py", line 17, in encrypt
    >     return base64.b64encode(iv + cipher.encrypt(raw))   File "/usr/local/lib/python3.5/dist-packages/Crypto/Cipher/blockalgo.py",
    > line 244, in encrypt
    >     return self._cipher.encrypt(plaintext) ValueError: Input strings must be a multiple of 16 in lengt

我的输入数据是韩语,但当我尝试使用英语时,它工作得很好。那么如何为特定语言加密呢?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/40538
 
1643 次点击  
文章 [ 3 ]  |  最新文章 5 年前