Python 实现AES加密、解密

摘要1:python 利用Crypto进行AES解密&加密文件 - 简书

摘要2:python实现AES加密、解密 - 一只小羊 - 博客园

1、pad和unpad分别是填充函数和逆填充函数。因为AES加密对加密文本有长度要求,必须是密钥字节数的倍数。这里的encryptKey在经过base64解码后的长度是16个字节。
2、实际上AES加密有AES-128、AES-192、AES-256三种,分别对应三种密钥长度128bits(16字节)、192bits(24字节)、256bits(32字节)。当然,密钥越长,安全性越高,加解密花费时间也越长。默认的是AES-128,其安全性完全够用。

加密示例:

import json

import base64
from Crypto.Cipher import AES
from binascii import b2a_hex, a2b_hex
from Crypto.Util.Padding import pad, unpad

new_data = {
    "helper": "hj-344ab346657",
    "timestamp": 1648523522,
    "sign": "12400"
}
str_s = json.dumps(new_data)


def encrypt(data, password):
    key = password.encode('utf-8')
    mode = AES.MODE_ECB
    cryptos = AES.new(key, mode)
    msg = cryptos.encrypt(pad(data, 16))

    return msg


str_d = str_s.encode('utf-8')
secret_key = "sdfoshffehhhhhsfis779ff"
encrypt_data = encrypt(str_d, secret_key)
encrypt_data = base64.b64encode(encrypt_data)
print('encrypt_data:', encrypt_data)

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
您可以通过以下步骤引入crypto-js库: 1. 在终端中运行以下命令来安装crypto-js库: ``` npm install crypto-js --save-dev ``` 或者使用淘宝镜像 ``` cnpm install crypto-js --save-dev ``` 2. 在代码中导入crypto-js库,并添加加密解密方法,代码示例如下: ``` 'use strict' import cryptoJs from 'crypto-js' let keyOne = '313233343536373a' export default { // 加密函数 jiami (word) { console.log(word) console.log('秘钥长度为:', keyOne.length) let key = cryptoJs.enc.Hex.parse(keyOne) let enc = '' if (typeof word === 'string') { enc = cryptoJs.AES.encrypt(word, key, { mode: cryptoJs.mode.ECB, padding: cryptoJs.pad.Pkcs7 }) } else if (typeof word === 'object') { let data = JSON.stringify(word) enc = cryptoJs.AES.encrypt(data, key, { mode: cryptoJs.mode.ECB, padding: cryptoJs.pad.Pkcs7 }) } let encResult = enc.ciphertext.toString() return encResult }, // 解密函数 jiemi (word) { console.log('传入的密文:', word) let key = cryptoJs.enc.Hex.parse(keyOne) let dec = cryptoJs.AES.decrypt(cryptoJs.format.Hex.parse(word), key, { mode: cryptoJs.mode.ECB, padding: cryptoJs.pad.Pkcs7 }) let decData = cryptoJs.enc.Utf8.stringify(dec) return decData } } ``` 3. 现在您可以在项目中使用crypto-js进行加密解密操作。 引用资料: <span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [vue 中引入cryptoJS](https://blog.csdn.net/weixin_33734785/article/details/93660857)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值