国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

基于注解的 java 加簽驗簽框架 checksum

jindong / 1137人閱讀

摘要:基于注解生成加簽驗簽。后來發現如下的問題有些字段太大,不想參與驗簽,但是無法方便的調整。感覺這樣有很大的弊端,完全失去了靈活性。

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 即可。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/74689.html

相關文章

  • 基于 java 注解 csv 文件讀寫框架

    摘要:基于注解生成加簽驗簽。是否寫入頭,建議第一次寫入指定,避免中文亂碼指定文件編碼默認不進行字段排序無待寫入的文件列表方法默認值說明必填創建實例,并且指定待讀取文件路徑。 csv 基于 java 注解生成加簽驗簽 csv。 開源地址: github csv) 創作原由 以前覺得 csv 文件的多寫非常簡單,就懶得封裝。 最近一個月寫了兩次 csv 文件相關的東西,發現要處理的細節還是有的,...

    Gemini 評論0 收藏0
  • 回眸曾經項目,與第三方支付相關,所帶來溝通問題

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

    kaka 評論0 收藏0
  • python加密與解密,加簽驗簽

    摘要:在與第三方服務對接時,加密與解密,加簽與驗簽是這個過程中的關鍵一步一般情況下,對接服務中會有兩對公私鑰。傳回來的數據,使用自己的私鑰解密,使用對方的公鑰驗簽。加密加密超長字節個字節一加密解密解密超長字符一解密加簽驗簽簽名待驗證簽名 在與第三方服務對接時,加密與解密,加簽與驗簽是這個過程中的關鍵一步 一般情況下,對接服務中會有兩對公私鑰。使用對方公鑰進行加密,使用自己私鑰進行加簽。傳回來...

    daydream 評論0 收藏0
  • python (3.x) 實現RSA 加簽 驗簽 以及key序列化

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

    kuangcaibao 評論0 收藏0
  • 數據防篡改加驗簽基本方案

    方案 加簽 待加簽數據整理為String (待加簽數據+密鑰)一起轉化為MD5 結果寫入數據庫 驗簽 待驗簽數據整理為String(邏輯必須同加簽一致) (待驗簽數據+密鑰)一起轉化為MD5 比較與原簽是否一致 public static String sign(String text, String salt, String inputCharset) { return Dige...

    Michael_Ding 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<