DES 加密 DES/ECB/PKCS7Padding

本文深入探讨了DES加密算法,重点解析了DES的ECB工作模式以及PKCS7填充方式。通过学习,读者将能够理解和应用DES加密在实际项目中。

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

依赖

<dependency>
      <groupId>org.bouncycastle</groupId>
      <artifactId>bcprov-jdk15on</artifactId>
      <version>1.60</version>
  </dependency> 
package com.sentemail.DES;

import java.security.SecureRandom;
import java.security.Security;
/*扩展类*/
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;

import org.bouncycastle.jce.provider.BouncyCastleProvider;
 
public class EncryptUtil {
   
   
	
	static {
   
       
		// 适配PKCS7Padding填充
        Security.addProvider(new BouncyCastleProvider());
    }
	 
	/** 加密、解密key. */
    private static final String PASSWORD_CRYPT_KEY = "EPICC_DESKEY_QYWX"
在Vue.js中,当你涉及到数据加密,尤其是使用DES(Data Encryption Standard)、ECB(Electronic Codebook,电子密码本模式)和PKCS7Padding(一种填充方案,全称Privacy Enhanced Electronic Mail Cryptography Standards Part 1 Block Cipher Modes of Operation - Padding Method for CBC)时,通常会借助JavaScript的安全库,比如crypto-js。 首先,你需要安装`crypto-js`库,可以使用npm或yarn: ```bash npm install crypto-js # 或者 yarn add crypto-js ``` 然后你可以按照以下步骤解密: 1. **导入库**: ```javascript import CryptoJS from 'crypto-js'; ``` 2. **假设你有加密后的字符串(base64编码),秘钥(key)以及是否使用了PKCS7Padding**: ```javascript const encryptedText = 'your_base64_encoded_text'; const secretKey = 'your_secret_key'; const usePadding = true; // 如果原始数据是按照PKCS7方式填充过的 ``` 3. **解密DES/ECB** (如果没有填充): ```javascript const decrypted = CryptoJS.DES.decrypt({ ciphertext: CryptoJS.enc.Base64.parse(encryptedText), key: CryptoJS.lib.WordArray.create(secretKey) }, { mode: CryptoJS.mode.ECB, padding: usePadding ? CryptoJS.pad.Pkcs7 : undefined }); const plaintext = decrypted.toString(CryptoJS.enc.Utf8); ``` 4. **如果使用PKCS7Padding**: ```javascript // 使用CryptoJS.pad.Pkcs7是因为我们已经知道是用了PKCS7Padding const decrypted = CryptoJS.DES.decrypt({ ciphertext: CryptoJS.enc.Base64.parse(encryptedText), key: CryptoJS.lib.WordArray.create(secretKey) }, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }); ``` 5. **最后得到的是未加盐的原始明文**。记得在实际应用中处理解密后的安全性问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值