AES ECB加密实现(java/php/python)

本文记录了AES ECB加密模式的实现,包括Python、PHP和Java三种编程语言的代码示例,详细说明了ECB模式的加密原理和PKCS5填充规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里做个一个加密实现的记录,方便以后查找

AES加密 ECB模式 PKCS5填充 128位密码/密码块
ECB模式是将明文按照固定大小的块进行加密的,块大小不足则进行填充。ECB模式没有用到向量。

python 实现
# -*- coding=utf-8-*-

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

"""
aes加密算法
padding : PKCS5
"""

class AESUtil:

    __BLOCK_SIZE_16 = BLOCK_SIZE_16 = AES.block_size

    @staticmethod
    def encryt(str, key):
        cipher = AES.new(key, AES.MODE_ECB)
        x = AESUtil.__BLOCK_SIZE_16 - (len(str) % AESUtil.__BLOCK_SIZE_16)
        if x != 0:
            str = str + chr(x)*x
        msg = cipher.encrypt(str)
        msg = base64.urlsafe_b64encode(msg).replace('=', '')
        return msg

    @staticmethod
    def decrypt(enStr, key):
        cipher = AES.new(key, AES.MODE_ECB)
        enStr += (len(enStr) % 4)*"="
        decryptByts = base64.urlsafe_b64decode(enStr)
        msg = cipher.decrypt(decryptByts)
        paddingLen = ord(msg[len(msg)-1])
        return msg[0:-paddingLen]

if __name__ == "__main__":
    print AESUtil.encryt("512345", "1234567812345678")
    print AESUtil.decrypt("1MbqzdK0IzP8vchDgRlzvw", "1234567812345678")
PHP实现
class AES {
   
   

    var $key = "1234567812345678";

    public function __set($key, $value)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值