首页 > 其他分享 >3DES加密、解密工具类,有需要的直接cv大法拿去用吧

3DES加密、解密工具类,有需要的直接cv大法拿去用吧

时间:2024-05-20 17:41:56浏览次数:15  
标签:3DES String 解密 cv Cipher import originKey throws cipher

package 你的类路径;


import cn.hutool.core.codec.Base64;

import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.spec.SecretKeySpec;
import java.security.InvalidKeyException;
import java.security.Key;
import java.security.NoSuchAlgorithmException;

public class BigDataDES3Utils {

/**
* 加密算法
*
* @param clearText
* @param originKey
* @return
* @throws NoSuchAlgorithmException
* @throws NoSuchPaddingException
* @throws InvalidKeyException
* @throws BadPaddingException
* @throws IllegalBlockSizeException
*/
@SuppressWarnings("restriction")
public static String desEncript(String clearText, String originKey) throws Exception {
Cipher cipher = Cipher.getInstance(Algorithm); /* 提供加密的方式:DES */
SecretKeySpec key = getKey(originKey); /* 对密钥进行操作,产生16个48位长的子密钥 */
cipher.init(Cipher.ENCRYPT_MODE,
key); /* 初始化cipher,选定模式,这里为加密模式,并同时传入密钥 */
byte[] doFinal = cipher.doFinal(clearText.getBytes()); /* 开始加密操作 */
return Base64.encode(doFinal); /* 对加密后的数据按照Base64进行编码 */
}

/**
* 解密算法
*
* @param cipherText 解密文本内容
* @param originKey 解密密码
* @return
* @throws BadPaddingException
* @throws IllegalBlockSizeException
* @throws NoSuchPaddingException
* @throws NoSuchAlgorithmException
* @throws InvalidKeyException
*/
public static final String Algorithm = "DESede";
public static String desDecript(String cipherText, String originKey) throws Exception {
Cipher cipher = Cipher.getInstance(Algorithm); /* 初始化加密方式 */
Key key = getKey(originKey); /* 获取密钥 */
cipher.init(Cipher.DECRYPT_MODE, key); /* 初始化操作方式 */
@SuppressWarnings("restriction")
byte[] decode = Base64.decode(cipherText); /* 按照Base64解码 */
byte[] doFinal = cipher.doFinal(decode); /* 执行解码操作 */
return new String(doFinal); /* 转换成相应字符串并返回 */
}

public static void main(String[] args) throws Exception {
String st = "你的密文";
//解密
System.out.println(desDecript(st,"你的密码"));

}

/**
* 获取密钥算法
*
* @param originKey
* @return
*/
public static SecretKeySpec getKey(String originKey) {
byte[] buffer = new byte[24];
byte[] originBytes = originKey.getBytes();
/**
* 防止输入的密钥长度超过192位
*/
for (int i = 0; i < 24 && i < originBytes.length; i++) {
buffer[i] = originBytes[i]; /* 如果originBytes不足8,buffer剩余的补零 */
}
/* 第一个参数是密钥字节数组,第二个参数是加密方式 */
return new SecretKeySpec(buffer, Algorithm); /* 返回操作之后得到的密钥 */
}
}

标签:3DES,String,解密,cv,Cipher,import,originKey,throws,cipher
From: https://www.cnblogs.com/xiaoniandexigua/p/18202485

相关文章

  • python 国密sm2(C1C3C2) sm4(CBC) 加密 解密
    fromgmssl.sm4importCryptSM4,SM4_ENCRYPT,SM4_DECRYPTimportbinasciiimportbase64fromgmsslimportsm2,func#GMSSLforPython#安装pipinstallgmssl#keycode='101231221289195374403401962572899'key='1012312212891953'iv=......
  • CVE-2017-2824
    ZabbixServertrapper命令注入漏洞(CVE-2017-2824)Zabbix是由AlexeiVladishev开发的一种网络监视、管理系统,基于Server-Client架构。其Server端trappercommand功能存在一处代码执行漏洞,特定的数据包可造成命令注入,进而远程执行代码。攻击者可以从一个Zabbixproxy发起请求......
  • T2T-ViT:更多的局部结构信息,更高效的主干网络 | ICCV 2021
    论文提出了T2T-ViT模型,引入tokens-to-token(T2T)模块有效地融合图像的结构信息,同时借鉴CNN结果设计了deep-narrow的ViT主干网络,增强特征的丰富性。在ImageNet上从零训练时,T2T-ViT取得了优于ResNets的性能MobileNets性能相当来源:晓飞的算法工程笔记公众号论文:Tokens-to-Token......
  • opencv
    anaconda(进如anacondaprompt)创建虚拟环境:condacreate-nopencvpython=3.6(opencv是环境的名字,3.6是创建环境的python版本号)查看虚拟环境:condainfo-e进入虚拟环境:condaactivate环境名退出虚拟环境:deactivate虚拟环境名字安装包时加入清华镜像:pipinstall包名-ihtt......
  • 利用MKL实现OpenCV的模板匹配(matchTemplate)
    基于FFT实现OpenCV的模板匹配(matchTemplate)以TM_CCORR_NORMED为例,因为这个实现简单,并且效率高。先看公式\[R(x,y)=\frac{\sum_{x',y'}(T(x',y')\cdotI(x+x',y+y'))}{\sqrt{\sum_{x',y'}T(x',y')^2\cdot\sum_{x',y'}I(......
  • opencv imshow 函数显示 float64 格式错误_cv2_imshow float
    CSDN搬家失败,手动导出markdown后再导入博客园在模拟高斯光斑的过程中,手动生成了下图所示的图像,使用cv2.imwrite()函数保存正常。![[output/attachments/fa4dbbeff2a5a1f2f99acd241f220fc7_MD5.png]]然而在使用cv2.imshow()函数显示时却出现错误![[output/attachments/e80ba8......
  • Python opencv 将一张图片任意 N 等分并保存_opencv 等分图像
    CSDN搬家失败,手动导出markdown后再导入博客园importcv2src=cv2.imread('100_0124_0013_pre_disaster.JPG',-1)cnt=1num=1sub_images=[]sub_image_num=4src_height,src_width=src.shape[0],src.shape[1]sub_height=src_height//sub_image_numsub_wi......
  • F-logic_DataCube3存在SQL注入漏洞(CVE-2024-31750)
    漏洞描述该漏洞是一个影响F-logicDataCube3v1.0的SQL注入漏洞,这个漏洞源于'req_id'参数的用户输入没有得到适当的清理或过滤。通过在'req_id'参数中注入恶意的SQL代码,远程攻击者可以执行任意SQL命令,从而可能访问、修改或删除数据库中的敏感信息Fofa:title=="DataCube3"POC:P......
  • Weblogic T3反序列化漏洞(CVE-2018-2628)
    目录前言T3协议概述漏洞复现修复方案前言WebLogicServer是一个企业级的应用服务器,由Oracle公司开发,支持完整的JavaEE规范,包括EJB、JSP、Servlet、JMS等,适合大型分布式应用和高负载场景。T3协议概述T3协议(Two-TierTCP/IPProtocol),是WebLogic中的一种专有协议,建立在TCP/IP协......
  • AI视频智能分析技术:EasyCVR视频汇聚安防监控智能化方案
    1、视频智能分析技术原理视频智能分析技术是一项基于计算机图像视觉分析技术的创新解决方案。它利用先进的算法,将视频场景中的背景和目标进行有效分离,从而实现对目标的精准分析和追踪。该技术可以对监控摄像头拍摄到的视频进行分析和识别,从而检测和识别出视频中的各种行为。此......