亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

基于注解的 java 加簽驗(yàn)簽框架 checksum

jindong / 1182人閱讀

摘要:基于注解生成加簽驗(yàn)簽。后來(lái)發(fā)現(xiàn)如下的問(wèn)題有些字段太大,不想?yún)⑴c驗(yàn)簽,但是無(wú)法方便的調(diào)整。感覺(jué)這樣有很大的弊端,完全失去了靈活性。

checksum

基于 java 注解生成加簽驗(yàn)簽 checksum。

開(kāi)源地址:github checksum
創(chuàng)作緣由

原來(lái)的代碼中,checksum 的生成是用的工具類(lèi)方法。

后來(lái)發(fā)現(xiàn)如下的問(wèn)題:

有些字段太大,不想?yún)⑴c驗(yàn)簽,但是無(wú)法方便的調(diào)整。

不同系統(tǒng)的 checksum 字段不同,只好把工具方法 copy 過(guò)去,改來(lái)改去。

感覺(jué)這樣有很大的弊端,完全失去了靈活性。

特性

基于注解的 checksum 加簽驗(yàn)簽

Fluent 流式語(yǔ)法

支持靈活的策略自定義

更新記錄
更新記錄
快速開(kāi)始 環(huán)境要求

jdk7+

maven 3.x+

引入

    com.github.houbb
    checksum
    0.0.1
定義待加簽的示例對(duì)象

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 表示加簽結(jié)果存放的字段

調(diào)用測(cè)試
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());
    }

    /**
     * 構(gòu)建示例對(duì)象
     * @return 構(gòu)建示例對(duì)象
     */
    private User buildUser() {
        User user = new User();
        user.name("ryo")
                .password("1234")
                .address("china");
        return user;
    }

}
ChecksumBs 引導(dǎo)類(lèi)

用來(lái)創(chuàng)建加簽的相關(guān)配置及實(shí)現(xiàn)。

配置核心方法
方法 默認(rèn)值 備注
newInstance() 新建 ChecksumBs 實(shí)例(static)
newInstance(object) 新建 ChecksumBs 實(shí)例,并且指定待加簽的對(duì)象(static,建議使用)
target(Object) 指定待加簽的對(duì)象
secret(ISecret) DefaultMd5Secret 指定加密的策略,默認(rèn)使用 md5 加密
sort(ISort) NameAscSort 指定排序的策略,默認(rèn)根據(jù)字段的名稱(chēng)正序排列表
cache(ICache) DefaultFieldListCache 指定字段的緩存策略,默認(rèn)使用本地 map 進(jìn)行字段信息緩存
調(diào)用核心方法
方法 返回值 備注
checksum() String 返回加簽的結(jié)果
fill() 無(wú) 將上面 checksum 的結(jié)果設(shè)置到 @Checksum 標(biāo)識(shí)的字段中
自定義

上述 ISecret/ISort/ICache 都是支持自定義的。

一般只需要重新定義 ISecret 即可。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/74689.html

相關(guān)文章

  • 基于 java 注解 csv 文件讀寫(xiě)框架

    摘要:基于注解生成加簽驗(yàn)簽。是否寫(xiě)入頭,建議第一次寫(xiě)入指定,避免中文亂碼指定文件編碼默認(rèn)不進(jìn)行字段排序無(wú)待寫(xiě)入的文件列表方法默認(rèn)值說(shuō)明必填創(chuàng)建實(shí)例,并且指定待讀取文件路徑。 csv 基于 java 注解生成加簽驗(yàn)簽 csv。 開(kāi)源地址: github csv) 創(chuàng)作原由 以前覺(jué)得 csv 文件的多寫(xiě)非常簡(jiǎn)單,就懶得封裝。 最近一個(gè)月寫(xiě)了兩次 csv 文件相關(guān)的東西,發(fā)現(xiàn)要處理的細(xì)節(jié)還是有的,...

    Gemini 評(píng)論0 收藏0
  • 回眸曾經(jīng)項(xiàng)目,與第三方支付相關(guān),所帶來(lái)溝通問(wèn)題

    摘要:錢(qián)可以存儲(chǔ)在自己的余額中,這就相當(dāng)于微信錢(qián)包,余額可以提現(xiàn)到銀行卡的中。我們的第三方支付平臺(tái)是連連支付,杭州的一家公司。私鑰怎么加簽每個(gè)公司的加簽方式是不一樣的,支付寶有支付寶的加簽方式,微信有微信的加簽方式。 導(dǎo)讀 筆者在校期間,通過(guò)自學(xué)java。學(xué)校里也開(kāi)過(guò)這門(mén)課,但是,講的都是一些基礎(chǔ),比如java的表達(dá)式、基本類(lèi)型、自定義類(lèi)型等等。也都是很基礎(chǔ)的東西,就連lambda表達(dá)式都沒(méi)...

    kaka 評(píng)論0 收藏0
  • python加密與解密,加簽驗(yàn)簽

    摘要:在與第三方服務(wù)對(duì)接時(shí),加密與解密,加簽與驗(yàn)簽是這個(gè)過(guò)程中的關(guān)鍵一步一般情況下,對(duì)接服務(wù)中會(huì)有兩對(duì)公私鑰。傳回來(lái)的數(shù)據(jù),使用自己的私鑰解密,使用對(duì)方的公鑰驗(yàn)簽。加密加密超長(zhǎng)字節(jié)個(gè)字節(jié)一加密解密解密超長(zhǎng)字符一解密加簽驗(yàn)簽簽名待驗(yàn)證簽名 在與第三方服務(wù)對(duì)接時(shí),加密與解密,加簽與驗(yàn)簽是這個(gè)過(guò)程中的關(guān)鍵一步 一般情況下,對(duì)接服務(wù)中會(huì)有兩對(duì)公私鑰。使用對(duì)方公鑰進(jìn)行加密,使用自己私鑰進(jìn)行加簽。傳回來(lái)...

    daydream 評(píng)論0 收藏0
  • python (3.x) 實(shí)現(xiàn)RSA 加簽 驗(yàn)簽 以及key序列化

    摘要:首先安裝確認(rèn)安裝的是版本版本的是不一樣的生成公私鑰對(duì)生成私鑰同時(shí)包含公鑰此處為序列化公鑰私鑰并寫(xiě)入文件存儲(chǔ)序列化私鑰無(wú)密碼也可以加入密碼保護(hù)私鑰將私鑰寫(xiě)入文件將公鑰寫(xiě)入文件也可以采用其他序列化方法比如對(duì)公鑰生成格式的序列化字符串輸出類(lèi)似于 首先 安裝cryptography sudo pip3 install cryptography 確認(rèn)安裝的是2.1.x版本 (1.x版本的api是...

    kuangcaibao 評(píng)論0 收藏0
  • 數(shù)據(jù)防篡改加驗(yàn)簽基本方案

    方案 加簽 待加簽數(shù)據(jù)整理為String (待加簽數(shù)據(jù)+密鑰)一起轉(zhuǎn)化為MD5 結(jié)果寫(xiě)入數(shù)據(jù)庫(kù) 驗(yàn)簽 待驗(yàn)簽數(shù)據(jù)整理為String(邏輯必須同加簽一致) (待驗(yàn)簽數(shù)據(jù)+密鑰)一起轉(zhuǎn)化為MD5 比較與原簽是否一致 public static String sign(String text, String salt, String inputCharset) { return Dige...

    Michael_Ding 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<