python和java中相同的 AES/CFB/NoPadding加密

1 篇文章 0 订阅

python和java的AES/CFB/NoPadding加密还是有点区别的
实现相同的加密方式
上代码
python中

def encrypt_(text):
    key = 'keyxxx'.encode()
    mode = AES.MODE_CFB
    cryptos = AES.new(key, mode, 'ivxxxx'.encode(),segment_size=128)
    cipher_text = cryptos.encrypt(text.encode())
    return base64.b64encode(cipher_text).decode()

java中(自己base64编一下码就行)

public static byte[] aes_cfb_nopadding(String paramString2)
	  {
	      Cipher localCipher = Cipher.getInstance("AES/CFB/NoPadding");
	      localCipher.init(1, new SecretKeySpec("keyxxx".getBytes("UTF-8"), "AES"), new IvParameterSpec("ivxxxx".getBytes("UTF-8"));
	      return localCipher.doFinal(paramString2.getBytes("UTF-8"))
	  }

需要解决问题的话,进群
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python 3.7提供了AES-CFB模式的加密解密算法。AES是一种对称加密算法,而CFB(Cipher Feedback)是一种分组密码模式。 要使用AES-CFB加密解密,我们首先需要安装pycryptodome库,这是一个强大且广泛使用的密码学库。可以通过以下命令安装该库: ``` pip install pycryptodomex ``` 下面是一个示例代码,演示了如何使用AES-CFB模式进行加密解密: ```python from Crypto.Cipher import AES from Crypto.Random import get_random_bytes # 随机生成16字节的密钥和初始化向量 key = get_random_bytes(16) iv = get_random_bytes(16) # 创建AES加密器和解密器 cipher = AES.new(key, AES.MODE_CFB, iv) decipher = AES.new(key, AES.MODE_CFB, iv) # 待加密的消息 message = "Hello, AES-CFB!" # 加密消息 ciphertext = cipher.encrypt(message.encode('utf-8')) # 解密密文 plaintext = decipher.decrypt(ciphertext).decode('utf-8') # 打印结果 print("密钥:", key) print("IV:", iv) print("密文:", ciphertext) print("明文:", plaintext) ``` 在这个例子,我们首先使用`get_random_bytes()`函数生成了一个16字节的密钥和一个16字节的初始化向量。然后,我们分别使用密钥和初始化向量创建了一个AES加密器和解密器。然后,我们将待加密的消息转换为字节形式,并使用加密器对其进行加密。最后,我们使用解密器对密文进行解密,并将解密后的结果转换为字符串形式。 请注意,AES-CFB模式需要提供一个初始化向量(IV),它与密钥一起用于加密解密过程。IV的安全性非常重要,它应该是随机且不可预测的。每次加密消息时,都应该使用一个独特的IV。在这个示例,我们使用`get_random_bytes()`函数生成了一个随机的IV。 希望这个示例对您有所帮助,让您了解如何在Python 3.7使用AES-CFB模式进行加密解密。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值