JAVA RSA簽名 解簽(利用支付寶封裝的函數(shù))

package com.mlgd.api.util;

import com.alibaba.fastjson.JSON;
import com.alipay.api.AlipayApiException;
import com.alipay.api.internal.util.AlipaySignature;

import java.util.HashMap;
import java.util.Map;

/**
 * 獲取token接口中sign簽名驗(yàn)簽Demo
 * 算法說明:
 * 使用SHA256簽名算法和RSA2048非對(duì)稱算法加密
 * 
 * @author Administrator
 */
public class SignDemo {

    /**
     * 公鑰
     */
    public static String publicKey_App2048 = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnLbS4NKB4K6lSwAruObksqJpcrs7t8w51Y38I9ix9r7WCBMiAjRxWu8DNnr2t5ya/XXoioHqyMH3oEkiqsUh3FX1pG/4N/9/hRtFDJqpkCo4Z/D76wEehY+y+k8sGEO+dO8m8bNbmfpcIGDwuPl3qVBFeyJQwPguuWd32/xtzLcYk2C/Eec25++ElHobGvLkRTHHlXeZ+v8IYCIPd058bQssnFMw7nn+Lgr2kQK/2gPQ8gXs8mi1712i/dgoo8bzw9mhzkFnWXExRqzgoXH5DfIMWnlRR4l1u2qXXPU+hIKFua2776qHREmeqPkKiHA2zoMc9LVydVDTGovJjSn00wIDAQAB";

    /**
     * 私鑰
     */
    public static String privateKey_App2048 = "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCcttLg0oHgrqVLACu45uSyomlyuzu3zDnVjfwj2LH2vtYIEyICNHFa7wM2eva3nJr9deiKgerIwfegSSKqxSHcVfWkb/g3/3+FG0UMmqmQKjhn8PvrAR6Fj7L6TywYQ7507ybxs1uZ+lwgYPC4+XepUEV7IlDA+C65Z3fb/G3MtxiTYL8R5zbn74SUehsa8uRFMceVd5n6/whgIg93TnxtCyycUzDuef4uCvaRAr/aA9DyBezyaLXvXaL92CijxvPD2aHOQWdZcTFGrOChcfkN8gxaeVFHiXW7apdc9T6EgoW5rbvvqodESZ6o+QqIcDbOgxz0tXJ1UNMai8mNKfTTAgMBAAECggEAaWS+/7oy5JMv0Pflb63Awq5dcm6fI+XyQ0ABAW6biREgyj9r0MXKMlip9XrO7/8fcTRZ1sS2zJs+WQq2iNiZBCC/Wf5/ldF7xl3nmylsverXEnhMQ+j1yOcyfArA4fS1YtjvfP+drDlmudPYMN59bl3wzHXwj0aZzdDbGBR1F4Y+CzgRObq5092acJz/foUO5SAg/+KLhmQQ28AvBhXPTgV467ER34pDHexCgAnsLsH4KVCPxsbW0eh7vaIgUjWQ/sTAfRzFW5CLJRYO1xH6mDS42dImiUJBiWiz2fK4FRrSM05QXCHkKfXb1DpMnvrNyHyCDZfshRp7UsZoxtVeaQKBgQDvWrX7JNb3Km5JncdKRq+I8lqx+d750Ffj0Ln2wTR0lahonJyF+YL4yuP5R8+sCeFRjcPWMUkZ2oSxxT6gaHRl0Z2fJXqwuCaO9NKq9C03olPmiFXM/H4knXsr1urfcRmE5sg3k0kcmtDnxoyDBBb3w8SRb8p0jqRl/NspDq9IJwKBgQCnnNj/JgCZJkWnK7JPTqnjTlavkV1Zicz89dvQ9Eq7Ff0e/BJiEi+DrndSP2v2YOZEJr0LOpIxJwaNCgea67t055/IlsBqHBu0cBtGQ7i2ykd/3Q1v+q0dEKf3C92lvwcsLRQo01gjnDMRiiSkIf0cYdxs66wgzAxh4xd9BvwNdQKBgAEVrydxNkwudAt/XIzYnykGuCSAVmNZb1yH8J/Oplc06mt28jqlM9O+z6OskKNd9BhzhQSuen9Ufy9zDmKZtpVTitxSxiiQ3RPeximiK6ZJ5QlxarogFs5BrHI5ah0THSN+DEA8OaOYjAPQ4Ygid5wt1fE2yXsXvmT77V5VQ7QXAoGALDRNdl0LY1iYnhIEIK5aV7xdWEg6GlchXMVqh50l6FlQPE+2eW7aYRwuE97uFjhQAkFFMiTsUVI9hAzVHKJ2+cnsdfZsII/xLpEyYEGUAYEvgiVGWfX+md++rITQm9nZhmkNHAdBA4M6ZLHOIAtmuYmFnKQ67RtjWJ2PoEWrS9ECgYBW6QtwiRxoz/Xes9jHRmShVcDfwq210Qubmd81uUtDy/lVOY99qCb4rNsTu3RVrtMubD9syvivDroE6NtFrDBNHAtRaGB77Ivs+WdMdhDzNwGxVfgt6h/qJoY05+NmVPe3ExtC2fs8EWnZkXPbs2qurFxdvhBjxHIQHQwV54GaZQ==";

    /**
     * 字符集
     */
    private static String CHARSET = "UTF-8";

    public static void main(String[] args) {

        /*
         * 接口請(qǐng)求參數(shù),注意  所有參數(shù)名稱全部為小寫
         */
        Map<String, String> map = new HashMap<String, String>();

        //系統(tǒng)參數(shù)
        map.put("appid", "123456789");// 授權(quán)用戶名(固定值)

        map.put("timestamp", "20180801050402");// 請(qǐng)求時(shí)間戳,時(shí)區(qū)為GMT+8(北京時(shí)間)



        /*
         * 業(yè)務(wù)參數(shù)封裝成bizcontent雷绢, 格式為json字符串
         */
        Map<String, Object> bizmap = new HashMap<String, Object>();

        bizmap.put("deviceid", "66666666");// 設(shè)備編號(hào)

        String bizcontent = JSON.toJSONString(bizmap);
        
        System.out.println("業(yè)務(wù)參數(shù)JSON格式字符串:"+bizcontent);

        map.put("bizcontent", bizcontent);//此處很重要护蝶,一定要傳遞bizcontent
        
        try {
            /*
             * 拼接待簽名字符串  RSA2對(duì)應(yīng)的函數(shù)
             */
            String content = AlipaySignature.getSignCheckContentV2(map);

            System.out.println("拼接待簽名字符串:"+content);


            /*
             * 對(duì)數(shù)據(jù)簽名  RSA2對(duì)應(yīng)的函數(shù)和密鑰
             */
            String sign = AlipaySignature.rsa256Sign(content, privateKey_App2048, CHARSET);

            System.out.println("原始sign:" + sign);

            map.put("sign", sign);

            /*
             * 進(jìn)入驗(yàn)簽流程
             */
            boolean result = AlipaySignature.rsaCheckV2(map, publicKey_App2048, "UTF-8", "RSA2");

            System.out.println("驗(yàn)簽結(jié)果:" + result);
            
        }
        catch (AlipayApiException e)
        {
            e.printStackTrace();
        }
    }

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市辜腺,隨后出現(xiàn)的幾起案子译蒂,更是在濱河造成了極大的恐慌被饿,老刑警劉巖彩掐,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件医咨,死亡現(xiàn)場(chǎng)離奇詭異枫匾,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)腋逆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門婿牍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來侈贷,“玉大人惩歉,你說我怎么就攤上這事∏温” “怎么了撑蚌?”我有些...
    開封第一講書人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)搏屑。 經(jīng)常有香客問我争涌,道長(zhǎng),這世上最難降的妖魔是什么辣恋? 我笑而不...
    開封第一講書人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任亮垫,我火速辦了婚禮,結(jié)果婚禮上伟骨,老公的妹妹穿的比我還像新娘饮潦。我一直安慰自己,他們只是感情好携狭,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開白布继蜡。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪稀并。 梳的紋絲不亂的頭發(fā)上仅颇,一...
    開封第一講書人閱讀 51,554評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音碘举,去河邊找鬼忘瓦。 笑死,一個(gè)胖子當(dāng)著我的面吹牛引颈,可吹牛的內(nèi)容都是我干的政冻。 我是一名探鬼主播,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼线欲,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼明场!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起李丰,我...
    開封第一講書人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤苦锨,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后趴泌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體舟舒,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年嗜憔,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了秃励。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡吉捶,死狀恐怖夺鲜,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情呐舔,我是刑警寧澤币励,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站珊拼,受9級(jí)特大地震影響食呻,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜澎现,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一仅胞、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧剑辫,春花似錦干旧、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽峻堰。三九已至,卻和暖如春盅视,著一層夾襖步出監(jiān)牢的瞬間捐名,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來泰國打工闹击, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留镶蹋,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓赏半,卻偏偏與公主長(zhǎng)得像贺归,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子断箫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容