摘要:基于注解生成加签验签。后来发现如下的问题有些字段太大,不想参与验签,但是无法方便的调整。感觉这样有很大的弊端,完全失去了灵活性。
checksum
基于 java 注解生成加签验签 checksum。
开源地址:github checksum创作缘由
原来的代码中,checksum 的生成是用的工具类方法。
后来发现如下的问题:
有些字段太大,不想参与验签,但是无法方便的调整。
不同系统的 checksum 字段不同,只好把工具方法 copy 过去,改来改去。
感觉这样有很大的弊端,完全失去了灵活性。
特性基于注解的 checksum 加签验签
Fluent 流式语法
支持灵活的策略自定义
更新记录更新记录快速开始 环境要求
jdk7+
maven 3.x+
引入定义待加签的示例对象com.github.houbb checksum 0.0.1
User.java
public class User { @CheckField private String name; @CheckField private String password; private String address; @Checksum private String checksum; //Getter & Setter //toString() }核心注解
@CheckField 表示参与加签的字段信息
@Checksum 表示加签结果存放的字段
调用测试package com.github.houbb.checksum.core; import com.github.houbb.checksum.model.User; import org.junit.Assert; import org.junit.Test; /** * @author binbin.hou * @since 0.0.1 */ public class ChecksumBsTest { @Test public void checksumTest() { User user = buildUser(); final String checksum = ChecksumBs .newInstance(user) .checksum(); Assert.assertEquals("8D62F2BC49A9AB51280C8F42A483ED54", checksum); } @Test public void fillTest() { User user = buildUser(); ChecksumBs.newInstance(user).fill(); Assert.assertEquals("User{name="ryo", password="1234", address="china", checksum="8D62F2BC49A9AB51280C8F42A483ED54"}", user.toString()); } /** * 构建示例对象 * @return 构建示例对象 */ private User buildUser() { User user = new User(); user.name("ryo") .password("1234") .address("china"); return user; } }ChecksumBs 引导类
用来创建加签的相关配置及实现。
配置核心方法方法 | 默认值 | 备注 |
---|---|---|
newInstance() | 新建 ChecksumBs 实例(static) | |
newInstance(object) | 新建 ChecksumBs 实例,并且指定待加签的对象(static,建议使用) | |
target(Object) | 指定待加签的对象 | |
secret(ISecret) | DefaultMd5Secret | 指定加密的策略,默认使用 md5 加密 |
sort(ISort) | NameAscSort | 指定排序的策略,默认根据字段的名称正序排列表 |
cache(ICache) | DefaultFieldListCache | 指定字段的缓存策略,默认使用本地 map 进行字段信息缓存 |
方法 | 返回值 | 备注 |
---|---|---|
checksum() | String | 返回加签的结果 |
fill() | 无 | 将上面 checksum 的结果设置到 @Checksum 标识的字段中 |
上述 ISecret/ISort/ICache 都是支持自定义的。
一般只需要重新定义 ISecret 即可。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/74689.html
摘要:基于注解生成加签验签。是否写入头,建议第一次写入指定,避免中文乱码指定文件编码默认不进行字段排序无待写入的文件列表方法默认值说明必填创建实例,并且指定待读取文件路径。 csv 基于 java 注解生成加签验签 csv。 开源地址: github csv) 创作原由 以前觉得 csv 文件的多写非常简单,就懒得封装。 最近一个月写了两次 csv 文件相关的东西,发现要处理的细节还是有的,...
摘要:钱可以存储在自己的余额中,这就相当于微信钱包,余额可以提现到银行卡的中。我们的第三方支付平台是连连支付,杭州的一家公司。私钥怎么加签每个公司的加签方式是不一样的,支付宝有支付宝的加签方式,微信有微信的加签方式。 导读 笔者在校期间,通过自学java。学校里也开过这门课,但是,讲的都是一些基础,比如java的表达式、基本类型、自定义类型等等。也都是很基础的东西,就连lambda表达式都没...
摘要:在与第三方服务对接时,加密与解密,加签与验签是这个过程中的关键一步一般情况下,对接服务中会有两对公私钥。传回来的数据,使用自己的私钥解密,使用对方的公钥验签。加密加密超长字节个字节一加密解密解密超长字符一解密加签验签签名待验证签名 在与第三方服务对接时,加密与解密,加签与验签是这个过程中的关键一步 一般情况下,对接服务中会有两对公私钥。使用对方公钥进行加密,使用自己私钥进行加签。传回来...
摘要:首先安装确认安装的是版本版本的是不一样的生成公私钥对生成私钥同时包含公钥此处为序列化公钥私钥并写入文件存储序列化私钥无密码也可以加入密码保护私钥将私钥写入文件将公钥写入文件也可以采用其他序列化方法比如对公钥生成格式的序列化字符串输出类似于 首先 安装cryptography sudo pip3 install cryptography 确认安装的是2.1.x版本 (1.x版本的api是...
方案 加签 待加签数据整理为String (待加签数据+密钥)一起转化为MD5 结果写入数据库 验签 待验签数据整理为String(逻辑必须同加签一致) (待验签数据+密钥)一起转化为MD5 比较与原签是否一致 public static String sign(String text, String salt, String inputCharset) { return Dige...
阅读 3126·2021-10-08 10:04
阅读 1038·2021-09-30 09:48
阅读 3427·2021-09-22 10:53
阅读 1629·2021-09-10 11:22
阅读 1660·2021-09-06 15:00
阅读 2122·2019-08-30 15:56
阅读 685·2019-08-30 15:53
阅读 2220·2019-08-30 13:04