package com.sprucetec.tms.fee.utils;
import java.security.Key;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
public class AES {
//密钥算法
public static final String KEY_ALGORITHM = "AES";
//加解密算法/工作模式/填充方式
public static final String CIPHER_ALGORITHM = "AES/ECB/PKCS5Padding";
/**
* 生成密钥
*/
public static String initkey() throws Exception {
KeyGenerator kg = KeyGenerator.getInstance(KEY_ALGORITHM); //实例化密钥生成器
kg.init(128); //初始化密钥生成器:AES要求密钥长度为128,192,256位
SecretKey secretKey = kg.generateKey(); //生成密钥
return Base64.encode(secretKey.getEncoded()); //获取二进制密钥编码形式
}
/**
* 加密数据
* @param data 待加密数据
* @param key 密钥
* @return 加密后的数据
* */
public static String encrypt(String data, String key) throws Exception {
Key k = new SecretKeySpec(key.getBytes("UTF-8"), KEY_ALGORITHM);
Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM); //实例化Cipher对象,它用于完成实际的加密操作
cipher.init(Cipher.ENCRYPT_MODE, k); //初始化Cipher对象,设置为加密模式
return Base64.encode(cipher.doFinal(data.getBytes("UTF-8"))); //执行加密操作。加密后的结果用Base64编码进行传输
}
/**
* 解密数据
* @param data 待解密数据
* @param key 密钥
* @return 解密后的数据
* */
public static String decrypt(String data, String key) throws Exception {
Key k = new SecretKeySpec(key.getBytes("UTF-8"), KEY_ALGORITHM);
Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM);
cipher.init(Cipher.DECRYPT_MODE, k); //初始化Cipher对象,设置为解密模式
return new String(cipher.doFinal(Base64.decode(data))); //执行解密操作
}
public static void main(String[] args) throws Exception {
System.out.println(AES.encrypt("asdf", "1234560000000000"));
System.out.println(AES.decrypt("sT4nPMyTugE2pQnCNQPtJw==", "1234560000000000"));
}
}
相关推荐
Autodesk激活无无网络选项?许可类型与脱机激活排查修复指南
软件许可激活是保障正版授权正常使用的核心环节,常见的授权模式包括单机版许可和网络版许可,两者在认证机制和应用场景上有所区别。单机版离线授权依托 FlexNet Licensing Service 等底层服务组件,在断网或内网环境下为用户提供可靠的技术支持与授权验证路径。然而在实际部署中,激活窗口并不总是显示“无网络激活方式”入口,这可能与许可类型选择、网络环境干扰、组件安装残留或系统时间偏差有关。理解入口的动态呈现逻辑与排查顺序,有助于在 AutoCAD、Revit 等 Autodesk 产品中高效解决脱机
密钥算法分类
国密即国家密码局认定的国产密码算法。主要有SM1,SM2,SM3,SM4。密钥长度和分组长度均为128位。SM1 为对称加密。其加密强度与AES相当。该算法不公开,调用该算法时,需要通过加密芯片的接口进行调用。SM2为非对称加密,基于ECC。该算法已公开。由于该算法基于ECC,故其签名速度与秘钥生成速度都快于RSA。ECC 256位(SM2采用的就是ECC 256位的一种)安全强度比RSA 2048位高,但运算速度快于RSA。国家密码管理局公布的公钥算法,其加密强度为256位。
ECC密码的加密和解密(附带代码实现)
ECC,全称Elliptic Curve Cryptography,是椭圆曲线密码学。这是一种公钥加密技术,其安全性基于椭圆曲线离散对数问题,被广泛应用于信息安全领域。ECC的主要优势在于,相较于RSA和DSA等其他传统的公钥密码体系,它能够在提供相同安全级别的情况下,使用更短的密钥,从而减少计算量和存储空间的需求。例如,一个256位的ECC密钥提供的安全性可以与3072位的RSA密钥或DSA密钥相媲美。ECC的主要应用领域包括SSL安全证书、安全电子邮件、移动设备安全、物联网设备安全等。
对称加密算法、密钥交换算法、非对称加密算法、数字签名、公钥证书
说到密码,我们第一个想到的就是登陆账户的密码,但是从密码学的角度来看,这种根本就不算合格的密码。 为什么呢,因为我们的账户密码,是依靠隐蔽性来达到加密作用:密码藏在我心里,你不知道,所以你登不上我的账户。 然而密码技术认为,「保密」信息总有一天会被扒出来,所以加密算法不应该依靠「保密」来保证机密性,而应该做到:即便知道了加密算法,依然无计可施。说的魔幻一点就是,告诉你我的密码,你依然不知道我的...
ArcGIS新手必看:5分钟搞定等高线转DEM栅格(附完整操作截图)
本文详细介绍了在ArcGIS中将等高线转换为DEM栅格的完整流程,包括CAD数据预处理、TIN转栅格和直接插值法两种核心方法,以及常见问题排查与优化技巧。通过实战案例和操作截图,帮助GIS新手快速掌握这一测绘数据处理的核心技能,提升地形分析和三维可视化效率。
Lossless-Claw 插件实战:告别上下文截断,让 OpenClaw 永不遗忘
本文介绍了OpenClaw的Lossless-Claw插件,这是一个基于LCM论文的DAG摘要系统,能有效解决上下文截断问题。文章包含10个部分,从插件原理到实操指南: 核心原理:通过DAG结构持久化存储所有原始消息,将旧消息分块摘要并形成层级结构,保持上下文在模型Token限制内。 性能优势:在OOLONG基准测试中得分74.8,优于Claude Code的70.3,尤其在长上下文场景表现更佳。 功能特点: 提供lcm_grep、lcm_describe等工具主动回忆历史 摘要始终链接回原文,实现真正无损
最全加密算法(知识点梳理)
最全加密算法(软考网工常见):包括对称秘钥,非对称秘钥,数字签名,数字证书,秘钥管理体系,kerberous,以及ssl等安全协议
SAP UI5 控件剖析系列之 sap.m.DatePicker:单日选择的工程化用法、最佳实践与常见坑
在 SAP UI5 的输入控件族里,是最常被使用的日期选择控件。它把一个可编辑的输入框与一个弹出的日历整合在一起,允许用户用触摸、鼠标或键盘在本地化格式下选择某一天;控件既可以从弹出的日历里点选,也可以直接在输入框里键入日期。官方 Fiori 设计规范对它的定位就是:完成单个日期的选择,不牵涉时间,也不负责跨天的范围选择。
AES 加密
package com.sprucetec.tms.utils;import java.security.Key;import javax.crypto.Cipher;import javax.crypto.KeyGenerator;import javax.crypto.SecretKey;import javax.crypto.spec.SecretKeySpec;public cl...
基于Proximal Policy Optimization的无人机姿态控制系统的研究及Matlab实现
本文简要介绍了基于Proximal Policy Optimization算法的无人机姿态控制系统,并使用Matlab实现了一个简化版的代码。PPO算法的特点在于能够解决强化学习中的部分可观察性问题,同时还能保持策略网络更新的稳定性。本文将介绍基于Proximal Policy Optimization(PPO)算法的无人机姿态控制系统,并使用Matlab进行简化版实现。无人机姿态控制是指通过调整飞行器各部件的参数,使其保持特定角度、方向和位置的状态。本文将实现无人机的横滚姿态控制,并将其作为实现的示例。
库存管理系统项目部署方案(基于jdk8)
不需要安装到服务器,运维本地安装就行,主要是用来编译前端代码的。构建完成后将dist文件夹复制到服务器内。
数据加密 三种密钥交换算法详解(RSA& DHE& ECDHE)
一、RSA密钥交换算法 RSA算法流程文字描述如下: (1)任意客户端对服务器发起请求,服务器首先发回复自己的公钥到客户端(公钥明文传输)。 (2)客户端使用随机数算法,生成一个密钥S,使用收到的公钥进行加密,生成C,把C发送到服务器。 (3)服务器收到C,使用公钥对应的私钥进行解密,得到S。 (4)上述交换步骤后,客户端和服务器都得到了S,S为密钥(预主密钥)。 图示如下: SSL协议中,服务器发送的公钥在SSL中是通过certificate报文发送的,certifica...
饥饿游戏搜索算法(HGS)详解:从生物激励到智能优化
饥饿游戏搜索算法(HGS)是一种受动物饥饿驱动觅食行为启发的智能优化算法。该算法通过模拟生物饥饿程度与觅食策略的关系,将个体适应度映射为饥饿感,并据此动态调整搜索行为。HGS的核心机制包括:1) 饥饿权重计算(W1/W2),2) 三种位置更新策略(随机探索、正向/负向协作),3) 自适应平衡参数E。算法通过迭代优化逐步改进解的质量,具有参数自适应、全局搜索能力强等特点,在复杂优化问题中表现出色。相比传统优化方法,HGS更注重个体内部状态对搜索行为的影响,实现了探索与开发的自然平衡。
对称密钥算法与非对称密钥算法
对称加密:速度高,可加密内容较大,用来加密会话过程中的消息 公钥加密:加密速度较慢,但能提供更好的身份认证技术,用来加密对称加密的密钥 一、.对称密钥算法 1.定义:对称加密算法即,加密和解密使用相同密钥的算法。(加密Key=解密key);对称密钥算法又分为分组密码 (Block Cipher)和流密码(Stream Cipher)。 常用算法包括DES(Data Encryption S...
efm32 入门.pdf
本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。
最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版
Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。
对称密钥与非对称密钥算法
对称密钥算法和非对称密钥算法 密码学中两种常见的密码算法为对称密码算法(单钥密码算法)和非对称密码算法(公钥密码算法)。 所谓对称密钥算法是指如果一个加密算法的加密密钥和解密密钥相同,或者虽然不相同,但是可由其中的任意一个很容易的推导出另一个,即密钥是双方共享的。非对称密钥算法是指一个加密算法的加密密钥和解密密钥是不一样的,或者说不能由其中一个密钥推导出另一个密钥...
WINCC7.3破解文件
WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!
密钥派生算法
密钥派生函数(学习自用)
OV9734 DATASHEET,完整规格书
OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等
ECDHE密钥协商算法
摘要: RSA密钥协商算法存在前向保密缺陷,一旦私钥泄露,历史通讯可能被破解。DH算法通过双方的公私钥计算共享密钥解决该问题,但效率较低。现代TLS广泛采用ECDHE算法,结合椭圆曲线密码学提升效率。ECDHE流程包括双方生成随机私钥、交换公钥、计算共享点(x,y),最终会话密钥由客户端随机数、服务端随机数和共享点x坐标生成。相比RSA,ECDHE支持前向保密,且允许在TLS握手早期就开始加密通信。两者的核心区别在于密钥生成材料:RSA依赖三个随机数,而ECDHE使用两个随机数加椭圆曲线计算的共享秘密。
密钥分散算法简析
密钥分算算法简称Diversify,是指将一个双长度(一个长度密钥为8个字节)的主密钥(MK),对数据进行分散处理,推导出一个双长度的DES加密密钥(DK)。该算法广泛应用于现在的金融IC卡和其他对于安全要求高的行业。其DK推导过程如下: 推导DK左半部分的方法是: 1、将分散数据的最右8个字节作为输入数据; 2、将MK作为加密密钥;
密钥协商算法
密钥协商算法(学习自用)
密钥交换算法
DH 密钥交换,全称 Diffie-Hellman key exchange,它可以让双方在完全没有对方任何预先信息的条件下通过不安全信道创建起一个密钥,这个密钥可以在后续的通讯中作为对称密钥来加密通讯内容。其原理使用了数论中的一个简单的推论,从理论上保证了其加密的可靠性。虽然如此,DH 密钥交换并不是完全安全的,攻击人可能会通过中间人通讯进行攻击,可以说用心险恶虽然 DH 密钥交换算法的雏形是 Hellman 和 Diffie 两个人先在一篇论文中先提出的,但是该算法的概念是 Merkle 提出的。所以当
密钥协商算法的演变 —— RSA算法 - DH算法 - DHE算法 - ECDHE算法
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录1. RSA算法RSA握手过程RSA秘钥协商算法最大的缺陷2. DH算法3. DHE算法4. ECDHE算法ECDHE秘钥协商算法的TSL握手: 1. RSA算法 传统的 TLS 握⼿基本都是使⽤ RSA 算法来实现密钥交换的。在 RSA 密钥协商算法中,客户端会⽣成随机密钥,并使⽤服务端的公钥加密后再传给服务端。根据⾮对称加密算法,公钥加密的消息仅能通过私钥解密,这样服务端解密后,双⽅就得到了相同的密钥,再⽤它加密应⽤消息。 R
Shamir密钥分享算法 python实现
Shamir’s Secret Sharing:维基百科参考 Shamir密钥分享的算法大致内容是:把一个真实值拆分成好多份,每一份都不同且不是真实值,
密钥协商介绍及算法规格
如表中最后一行所示,为了兼容由密钥参数生成的密钥,DH密钥协商参数输入密钥类型时支持不指定知名安全素数群,密钥协商运算取决于实际输入的密钥,且这种情况支持非知名组密钥协商。如表中最后一行所示,为了兼容由密钥参数生成的密钥,ECDH密钥协商参数输入密钥类型时支持不指定长度和曲线,密钥协商运算取决于实际输入的密钥。在非安全通道环境中,需要不共享任何秘密的情况下,协商出一个安全的共享密钥,可以使用密钥协商算法。当创建密钥协商时,需要使用表中“字符串参数”一列,指定密钥协商算法规格。
对称密码算法DES中的子密钥生成算法(密钥扩展算法)
对称密码算法DES的讲解:1. 《信息安全原理与实践》 Matk Stamp 第三章 DES 2. http://hi.baidu.com/suntopdang/blog/item/5a3f7dee46f5663fadafd5fd.html3. http://www.docin.com/p-23162685.html 网上这两篇文章算还是讲得不错的。不过我刚开始
密钥派生介绍及算法规格
当前支持以字符串参数进行密钥派生,具体的“字符串参数”由“密钥派生函数”、“HMAC函数摘要算法”和“模式”使用符号“|”拼接而成,用于在创建密钥派生函数生成器时,指定算法规格。当前支持以字符串参数进行密钥派生,具体的“字符串参数”由“密钥派生函数”和“HMAC函数摘要算法”使用符号“|”拼接而成,用于在创建密钥派生函数生成器时,指定算法规格。PBKDF2是将伪随机函数PRF(Pseudo-Random Function,例如基于散列的HMAC),输入密码明文和盐值,重复多次运算来进行密钥派生。
356



被折叠的 条评论
为什么被折叠?



