D5-加解密
加解密相关技术笔记
Jone_ZhangH
学习路上默默前行的男人
展开
-
HmacSHA256签名验签
直接代码: public static String signWithHmacSHA256(String message, String secret) { if (StringUtils.isBlank(secret)) { return null; } try { Mac HmacSHA256 =...原创 2020-04-14 19:07:02 · 2513 阅读 · 0 评论 -
【java.security.SignatureException: Signature length not correct】的解决办法
错误信息对接某家公司的接口,涉及String转ASCII,验签时候报错。java.security.SignatureException: Signature length not correct: got 344 but was expecting 256错误原因签名长度不正确:实际值为344,但期望值为256在生成签名的时候,用的是 Base64.encodeBase64Strin...原创 2020-03-31 19:59:47 · 10047 阅读 · 0 评论 -
Java使用Cipher类实现加解密
加密 public static byte[] encrypt(byte[] msgBuf, byte[] keyBuf, byte[] iv) { Cipher cipher = Cipher.getInstance("DESede/CBC/PKCS5Padding"); DESedeKeySpec keySpec = new DESedeKeySpec(keyBuf);...原创 2020-02-26 10:23:59 · 1795 阅读 · 0 评论 -
Java实现读取CER文件
实现代码 /** * getPlkformCer: 从CER文件中获取公钥 * @param strCer 文件存储目录 */ private static PublicKey getPlkformCer(String strCer){ FileInputStream bais; try { Ce...原创 2019-12-23 11:06:16 · 5323 阅读 · 0 评论 -
Java实现读取PFX文件
实现代码 /** * getPvkformPfx: 从PFX文件中获取私钥 * @param strPfx 文件存储目录 * @param strPassword PFX密码 */ private static PrivateKey getPvkformPfx(String strPfx, String strPassword){ ...原创 2019-12-23 10:57:50 · 1794 阅读 · 1 评论 -
openssl根据公钥生成证书
前言之前学习了下从证书中提取公私钥,但是对外提供我方的公钥信息还是要以证书作为载体。操作第一步:生成CA证书和私钥openssl req -newkey rsa:2048 -nodes -keyout cakey.pem -x509 -out cacert.cer第二步:生成公司csr文件和临时私钥openssl req -newkey rsa:2048 -nodes -keyout...原创 2019-12-20 20:22:35 · 2122 阅读 · 0 评论 -
Java实现JWS生成与验签
前言接了大组织的对接需求,需要对面要求采用jws方式生成签名和签名验证。ps:JWT(json web token)是设计一种简洁,安全,无状态的token的实现,通常用于网络请求方和网络接收方之间的网络请求认证。JWE(JSON Web Encryption)敏感数据加密JWS(JSON Web Signature)签名认证,可以解决否认、伪造、篡改及冒充等问题。代码实现生成...原创 2019-12-19 10:55:10 · 3409 阅读 · 6 评论 -
Base64不补位加密(安全加密)
简介最近接到个需求,需要对报文进行Base64加密处理,参考数据样例发现要求的加密后格式不使用“=”符号补位。研究了下,记录结果。处理方法引入import org.apache.commons.codec.binary.Base64;使用String abc = "ABC";Base64.encodeBase64URLSafeString(abc.getBytes()) ;对比...原创 2019-12-19 10:26:42 · 1222 阅读 · 0 评论 -
签名验证SHA256withRSA(JAVA实现)
验证规则收到應答消息後,執行以下步驟進行簽名驗證1) 使用正則表達式把應答報文分為兩部分:報文(request/response)部分和簽名(signature)部分;2) 使用SHA256算法對報文(request/response)部分獲取消息摘要;3) 使用公鑰將簽名解碼為消息摘要;4) 比較第2,3步驟的消息摘要,如果相同,說明原文沒有變化,驗證通過;Java代码实现引用包:...原创 2019-11-12 11:35:36 · 6446 阅读 · 2 评论 -
openssl提取证书公私钥
工具:openssl安装软件:Win64OpenSSL_Light-1_1_1d.msi下载地址:http://slproweb.com/products/Win32OpenSSL.html具体下那个看自己的操作系统是多少位罗。安装完以后,打开cmd。输入openssl:显示成这样就是安装成功罗。操作举例,有以下两个证书:pfx提取公私钥:openssl pkcs12 -i...原创 2019-11-12 10:17:26 · 5289 阅读 · 0 评论