精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

研發必備:輕松玩轉開放接口API簽名和驗簽

安全 應用安全
在效率上來說,對稱加密的效率顯然更高,但是非對稱加密的安全性更高。所以一般在實際的HTTPS加密過程中,首次連接使用的是公鑰加密算法(非對稱加密)來傳輸數據加密所要使用的對稱加密的密鑰,之后傳輸中使用的都是對稱加密算法。

一、簡介

開放接口API的簽名和驗簽是一種常見的安全機制,用于確保接口請求的完整性和真實性。

1.1、對稱加密和非對稱加密

 對稱加密:加密和解密使用的是同一把密鑰。常用的對稱加密算法:DES,AES,3DES。

非對稱加密:加密和解密使用的是不同的密鑰,一把作為公開分享給加密方的叫做公鑰,另一把不分享作為解密的私鑰。公鑰加密的密文只有私鑰能進行解密;私鑰加密的密文也只有公鑰能進行解密。常見的非對稱加密算法:RSA,ECC。

總之:在效率上來說,對稱加密的效率顯然更高,但是非對稱加密的安全性更高。所以一般在實際的HTTPS加密過程中,首次連接使用的是公鑰加密算法(非對稱加密)來傳輸數據加密所要使用的對稱加密的密鑰,之后傳輸中使用的都是對稱加密算法。

1.2、生成非對稱秘鑰對

第三方系統作為調用方(客戶端),與接口服務方(服務端)約定好加密算法和客戶端名稱(clientID),便于在服務方系統中來唯一標識調用方系統。約定好以后,服務方為每一個調用方系統專門生成一個專屬的非對稱密鑰對(RSA密鑰對)。私鑰頒發給調用方系統(客戶端),公鑰由服務方持有。

圖片圖片

注意:調用方(客戶端)系統需要保管好私鑰(存到調用方系統的后端)。因為對于服務方系統而言,調用方系統是消息的發送方,其持有的私鑰唯一標識了它的身份是服務方系統受信任的調用方。調用方系統的私鑰一旦泄露,調用方對原系統毫無信任可言。

1.3 開放接口API

不需要登錄憑證就允許被第三方系統調用的接口,必須要考慮接口數據的安全性問題。比如:數據是否被篡改?數據是否已過時?數據是否可以重復提交?等問題。為了防止開放接口被惡意調用,開放接口一般都需要驗簽才能被調用。

 1.4、 簽名和驗簽

簽名:是第三方系統在調用接口API前,需按照接口API提供方的規則根據所有請求參數生成一個簽名(字符串),在調用接口時攜帶該簽名的。

特別注意:為了確保生成簽名的處理細節與服務方系統的驗簽邏輯是匹配的,服務方系統一般都提供jar包或者代碼片段給調用方來生成簽名,否則可能會因為一些處理細節不一致導致生成的簽名是無效的

 驗簽:接口提供方會驗證簽名的有效性,只有簽名驗證有效才能正常調用接口,否則請求會被駁回。

圖片圖片

二、應用案例

圖片圖片

核心代碼:

/**
 * @Description: TODO:使用RSA完成簽名驗簽
 * @Author: yyalin
 * @CreateDate: 2023/3/28 14:37
 * @Version: V1.0
 */
@Slf4j
public class RSAUtils {
    public static final String SIGNATURE_INSTANCE = "SHA256withRSA";  //簽名
    public static final String KEYPAIR_INSTANCE = "RSA";  //秘鑰類型
    /**
     * 功能描述:RSA公私鑰生成器
     * @MethodName: genKey
     * @MethodParam: []
     * @Return: Map
     * @Author: yyalin
     * @CreateDate: 2023/12/18 15:34
     */
    public static Map genKey() throws Exception{
        KeyPairGenerator kpg = KeyPairGenerator.getInstance(KEYPAIR_INSTANCE);
        kpg.initialize(1024);
        KeyPair kep = kpg.generateKeyPair();
        PrivateKey pkey = kep.getPrivate();
        PublicKey pubkey = kep.getPublic();
        Map<String,Object> param=new HashMap<String,Object>();
        param.put("publicKey", new String(Base64Utils.encode(pubkey.getEncoded())));
        param.put("privateKey", new String(Base64Utils.encode(pkey.getEncoded())));
        return param;
    }
    /**
     * 功能描述:RSA簽名
     * @MethodName: sign
     * @MethodParam: [content:需要簽名的字符串, privateKey:RSA私鑰]
     * @Return: java.lang.String
     * @Author: yyalin
     * @CreateDate: 2023/12/18 16:10
     */
    public static String sign(String content, String privateKey) throws Exception {
        byte[] str= Base64Utils.decode(privateKey.getBytes("UTF-8"));
        PKCS8EncodedKeySpec priPKCS8 = new PKCS8EncodedKeySpec(str);
        KeyFactory keyf = KeyFactory.getInstance(KEYPAIR_INSTANCE);
        PrivateKey priKey = keyf.generatePrivate(priPKCS8);
        java.security.Signature signature = java.security.Signature.getInstance(SIGNATURE_INSTANCE);
        signature.initSign(priKey);
        signature.update(content.getBytes("UTF-8"));
        byte[] signed = signature.sign();
        return new String(Base64Utils.encode(signed),"UTF-8");
    }
    /**
     * 功能描述:RSA驗簽
     * @MethodName: verify
     * @MethodParam: [content:原文內容, sign:待驗證的簽名, public_key:RSA公鑰]
     * @Return: boolean 簽名結果
     * @Author: yyalin
     * @CreateDate: 2023/12/18 16:11
     */
    public static boolean verify(String content, String sign, String public_key)
            throws Exception {
        KeyFactory keyFactory = KeyFactory.getInstance(KEYPAIR_INSTANCE);
        byte[] encodedKey = Base64Utils.decode(public_key.getBytes("UTF-8"));
        PublicKey pubKey = keyFactory.generatePublic(new X509EncodedKeySpec(encodedKey));
        java.security.Signature signature = java.security.Signature.getInstance(SIGNATURE_INSTANCE);
        signature.initVerify(pubKey);
        signature.update(content.getBytes("UTF-8"));
        boolean bverify = signature.verify(Base64Utils.decode(sign.getBytes("UTF-8")));
        return bverify;
    }
}

測試內容:

//測試使用
    public static void main(String[] args) throws Exception {
        //1、獲取公私鑰匙 請求方獲取公鑰私鑰后,傳私鑰發送請求
        Map<String,Object> param=RSAUtils.genKey();
        log.info("輸出的公鑰私鑰param:"+param);
        String publicKey= (String) param.get("publicKey");
        String privateKey= (String) param.get("privateKey");
        //2、簽名 獲取私鑰,獲取請求后對內容進行加標簽返回
        String cnotallow="您好!";
        String sign=RSAUtils.sign(content, privateKey);
        log.info("使用私鑰輸出的標簽sign:"+sign);
        //3、驗簽
//        String cnotallow="您好!";
        boolean verify=RSAUtils.verify(content, sign,  publicKey);
        log.info("使用公鑰驗簽結果verify:"+verify);


    }

測試結果:

圖片圖片

請求體內容被篡改了:

圖片圖片

責任編輯:武曉燕 來源: 程序猿小楊
相關推薦

2020-07-20 07:46:01

程序員加簽驗簽

2020-04-14 11:43:54

Python加密解密授權認證

2021-12-27 16:20:45

鴻蒙HarmonyOS應用

2023-03-10 18:34:31

2011-09-21 14:17:12

Google+

2013-07-24 10:10:57

天翼開放平臺WEB短信API

2025-02-12 07:13:54

Knife4jAPISpringBoot

2020-09-24 10:57:12

編程函數式前端

2021-11-10 16:07:01

鴻蒙HarmonyOS應用

2021-11-10 16:08:45

鴻蒙HarmonyOS應用

2011-06-15 09:47:56

微軟云計算Microsoft

2013-10-16 09:10:12

2021-12-07 00:10:25

C# 微信支付

2023-08-18 14:39:02

2010-07-09 12:09:34

IT運維Mocha BSM摩卡軟件

2022-07-19 11:30:29

接口安全

2010-09-01 10:09:32

CSS樣式

2023-08-16 08:00:39

API網頁端音頻錄制

2020-03-23 14:40:44

騰訊會議騰訊云開放API

2020-03-04 10:27:17

GitGo語言云計算
點贊
收藏

51CTO技術棧公眾號

h视频在线免费| 欧美成人一区二区视频| 嫩呦国产一区二区三区av| 亚洲男人天堂一区| 精品在线一区| 黄色网址中文字幕| 无需播放器亚洲| 亚洲第一页在线| 亚洲视频在线观看一区二区三区| 五月婷婷在线观看| 成人三级伦理片| 国产精品99久久久久久www| 天天做夜夜爱爱爱| 亚洲三级网页| 日韩美女一区二区三区四区| 黄色片视频在线播放| 快射av在线播放一区| 91小视频在线| 亚洲一区久久久| 久久国产视频一区| 欧美一区综合| 中文字幕亚洲欧美日韩在线不卡| 稀缺小u女呦精品呦| 成人mm视频在线观看| 亚洲国产精品一区二区久久| 亚洲成人精品电影在线观看| 色噜噜一区二区三区| 国产一区欧美日韩| 国产精品吹潮在线观看| 国产精品黄色网| 欧美二区视频| 久久国内精品一国内精品| 一本加勒比北条麻妃| youjizzjizz亚洲| 欧美精品日韩一本| 亚洲精品高清无码视频| 激情视频网站在线播放色 | 国产精品三级在线观看无码| 日本在线视频一区二区三区| 欧美日韩高清一区二区不卡| 99视频在线免费| 小视频免费在线观看| 亚洲国产sm捆绑调教视频| 久久最新免费视频| 韩国中文字幕在线| 中文字幕中文字幕一区| 先锋在线资源一区二区三区| 国产在线观看精品一区| 99久久免费精品高清特色大片| 97人人澡人人爽| 国产www视频| 国产精品一区二区三区四区| 成人黄色激情网| 在线免费观看一级片| 日韩国产欧美在线视频| 日本人成精品视频在线| 岛国av中文字幕| 久久九九精品| 国产精品久久久久福利| 欧美激情一区二区三区免费观看| 久久亚洲综合| 国产精品高潮呻吟久久av黑人| 日本中文字幕久久| 日韩电影在线看| 国产美女直播视频一区| 一区二区的视频| 精品中文字幕一区二区| 亚洲aⅴ男人的天堂在线观看| 国产精品久久无码一三区| 韩日精品视频一区| 97超级碰碰| 香蕉视频免费在线看| 久久蜜桃一区二区| 日韩在线三级| 国产激情在线| 亚洲va中文字幕| 美女福利视频在线| 日产精品一区| 欧美精品乱码久久久久久| 日本高清一区二区视频| 视频精品一区二区三区| 日韩www在线| 欧美老女人性生活视频| 亚洲色图网站| 久久久久久久久久久成人| 久久免费激情视频| 久久精品国产精品亚洲精品| http;//www.99re视频| 天天摸天天碰天天爽天天弄| 久久久久久麻豆| 视频一区二区视频| 九色porny视频在线观看| 色婷婷一区二区| 交换做爰国语对白| 欧亚精品一区| 日韩在线免费av| 国产大片aaa| 日韩精彩视频在线观看| 99久久久久国产精品免费| 三级在线电影| 亚洲另类春色国产| 午夜精品久久久内射近拍高清| 偷拍自拍亚洲| 日韩电影免费在线观看中文字幕| 又色又爽的视频| 99国产精品| 亚洲最大成人免费视频| 欧美精品久久久久久久久久丰满| 专区另类欧美日韩| 日本精品一区二区三区四区| 精品精品视频| 在线观看欧美日韩| 日韩污视频在线观看| 久草这里只有精品视频| 精品视频免费观看| 国产剧情在线| 在线视频你懂得一区| 亚洲香蕉中文网| 亚洲一区二区| 国产精品人成电影在线观看| 欧性猛交ⅹxxx乱大交| 国产精品久久久久国产精品日日| 国产精品va无码一区二区| 亚洲国产中文在线二区三区免| 中文国产亚洲喷潮| 欧美一级片免费在线观看| 国产精品99久久久| 伊人久久大香线蕉av一区| 欧美1级2级| 亚洲精品久久久久中文字幕二区 | 亚洲第一av色| 三级黄色片免费观看| 成人综合久久| 国产精品久久久久久av下载红粉| 色窝窝无码一区二区三区| 亚洲精选视频在线| 99久久99精品| 一区二区三区午夜视频| 国产一区二区在线免费| 不卡在线视频| 欧美在线不卡一区| 无码人妻aⅴ一区二区三区69岛| 日韩视频在线一区二区三区| 高清国产在线一区| 色爱综合区网| 精品日产卡一卡二卡麻豆| 人妻无码一区二区三区免费| 日本91福利区| 五月天亚洲综合| free欧美| 中日韩美女免费视频网站在线观看 | www.精品视频| 一区二区三区四区乱视频| 亚洲精品国产久| 一区二区三区在线电影| 2020国产精品久久精品不卡| 日韩特级毛片| 精品盗摄一区二区三区| 精品成人久久久| 26uuu国产日韩综合| 国产日韩一区二区在线| 亚洲精品国产setv| 国产精品高潮呻吟久久av无限| eeuss影院在线观看| 欧美日韩中文字幕一区二区| 日本成人精品视频| 狠狠狠色丁香婷婷综合久久五月| www.国产亚洲| 九九热播视频在线精品6| 18性欧美xxxⅹ性满足| 欧美日韩在线中文字幕| 欧美伊人久久久久久久久影院 | 91色琪琪电影亚洲精品久久| 国产精品va在线观看视色| 精品免费99久久| 美日韩一二三区| 国产精品色眯眯| 又黄又爽又色的视频| 韩日精品在线| 日本免费高清不卡| 成人动漫视频在线观看| 久久久久久久久国产精品| 欧美新色视频| 欧美一区日韩一区| 日韩成人在线免费视频| 久久久久久久久久久黄色| 五月天激情视频在线观看| 亚洲国产精品成人| 精品国产一二| 久久人体av| 高清视频欧美一级| 成年人视频网站在线| 91精品国产免费久久综合| 日本少妇在线观看| 中国色在线观看另类| 久久av一区二区三| 日韩vs国产vs欧美| 黄网站色视频免费观看 | 四虎影院一区二区| 久久免费视频66| 国产日韩在线看片| 岛国av免费在线观看| 国产一区二区三区在线观看视频| 99国产在线播放| 91精品福利在线| 国产第100页| 国产精品灌醉下药二区| 国产成人av无码精品| 久久成人综合网| 男人揉女人奶房视频60分| 一区二区三区在线电影| 日韩视频专区| 久久精品亚洲成在人线av网址| 成人欧美一区二区三区在线| 大胆人体一区| 性色av一区二区咪爱| 浪潮av一区| 最新69国产成人精品视频免费| 亚洲色偷精品一区二区三区| 欧美成人bangbros| 国产一区二区波多野结衣| 欧美性xxxxxx| 日本最新中文字幕| 亚洲嫩草精品久久| 国产主播av在线| 久久精品视频在线免费观看| 800av在线播放| 国产传媒日韩欧美成人| av中文字幕网址| 欧美aaaaa成人免费观看视频| 欧美性大战久久久久xxx| 亚洲性人人天天夜夜摸| mm131午夜| 羞羞答答成人影院www| 亚洲欧美久久久久一区二区三区| 国产91久久精品一区二区| 久久精品五月婷婷| 蜜桃久久久久| 国产精品日韩二区| 99久久免费精品国产72精品九九 | 亚洲男女毛片无遮挡| 久久视频一区二区三区| 日本一区二区动态图| 日本高清www| 久久久另类综合| 国产毛片久久久久久久| 久久影院午夜片一区| 超碰97人人干| 国产亚洲人成网站| 在哪里可以看毛片| 国产欧美一区二区三区鸳鸯浴| 久久精品成人av| 久久九九久精品国产免费直播| 91网站免费视频| 国产欧美精品日韩区二区麻豆天美| 中文字幕高清视频| 国产亚洲欧洲一区高清在线观看| x88av在线| 国产精品久久毛片| 四虎精品免费视频| 亚洲制服丝袜在线| 男女视频免费看| 色哟哟一区二区在线观看| 成人黄色激情视频| 欧美日韩国产a| 国产美女三级无套内谢| 日韩视频免费观看高清完整版在线观看 | 日本在线高清| 国产国语刺激对白av不卡| 日韩一区精品| 91福利入口| 日本福利一区| 亚洲欧洲日韩综合二区| 一区二区三区中文| 成熟丰满熟妇高潮xxxxx视频| 久久www成人_看片免费不卡| 欧美第一页浮力影院| 国产乱色国产精品免费视频| 亚洲精品国产成人av在线| 久久久综合激的五月天| 国产在线免费av| 亚洲一二三区视频在线观看| 日韩黄色在线播放| 欧美精品 日韩| 污视频在线免费| 日韩在线观看免费网站| aaa在线播放视频| 国产精品视频1区| 国产成人精品亚洲线观看| 欧美韩国日本精品一区二区三区| 久久免费大视频| 国产精品又粗又长| 免费在线看一区| 美女伦理水蜜桃4| 国产女人水真多18毛片18精品视频| 国产精品国产精品88| 欧美视频不卡中文| 国产a级免费视频| 国产亚洲欧美日韩精品| 特级毛片在线| 国产精品美女在线| 美女一区二区在线观看| 久久精品国产精品亚洲精品色| 在线亚洲国产精品网站| www.com污| 久久久久久日产精品| 国产一级aa大片毛片| 欧美性猛交xxxx黑人交| 神宫寺奈绪一区二区三区| 日韩中文字幕视频在线| 竹内纱里奈兽皇系列在线观看 | 日韩高清三区| 黄色一级片网址| 日韩avvvv在线播放| 99久久免费看精品国产一区| 最新不卡av在线| 国产无遮挡又黄又爽又色视频| 亚洲国产日韩欧美在线动漫| 91精品久久久| 国产日韩专区在线| 欧美理论在线播放| 1024av视频| 成人激情av网| 欧美又粗又大又长| 欧美人与性动xxxx| 成人高清免费观看mv| 国产69久久精品成人看| a级日韩大片| 女人床在线观看| 极品尤物av久久免费看| 亚洲午夜久久久久久久国产| 精品国产精品自拍| 欧美一级视频免费| 欧美风情在线观看| 国语精品视频| 欧美另类videos| 极品尤物av久久免费看| 国产一区第一页| 欧美日韩国产在线播放网站| www.视频在线.com| 国产精品国产三级国产aⅴ浪潮| 天海翼精品一区二区三区| 国产原创popny丨九色| 99久久久精品| 国产九色在线播放九色| 亚洲精品国产欧美| 午夜激情在线播放| 美媛馆国产精品一区二区| 亚洲免费中文| 五月天综合视频| 欧美午夜精品久久久久久孕妇| 国产免费永久在线观看| 国产精品电影在线观看| 日韩欧美综合| 色91精品久久久久久久久| 亚洲日本欧美天堂| 精品国产无码一区二区三区| 欧美日本亚洲视频| 中文字幕av一区二区三区四区| 欧美黑人在线观看| www.亚洲激情.com| 9i看片成人免费看片| 亚洲人成电影网站色| 91亚洲视频| 国产手机视频在线观看| 国产成人免费视频精品含羞草妖精| 免费日韩在线视频| 亚洲国产精品悠悠久久琪琪| 粉嫩一区二区| 亚洲人成网站在线观看播放| 国产一区激情在线| 日本网站免费观看| 亚洲区中文字幕| 亚洲精品毛片| www.好吊操| 国产视频在线观看一区二区三区 | 免费一级全黄少妇性色生活片| 日韩一区二区高清| 看黄在线观看| 亚洲春色在线视频| 国产精品18久久久久久久久久久久| 久久久噜噜噜www成人网| 久草福利资源在线| 国产不卡在线播放| 精品国产免费观看| 在线观看中文字幕亚洲| 伊人国产精品| www.av片| 国产精品乱码一区二区三区软件| 国内毛片毛片毛片毛片| 国语自产精品视频在线看一大j8 | 久久观看最新视频| 91在线免费播放| 亚洲一区二区色| 91高清视频免费| 一精品久久久| 国精产品一区二区三区| 日韩午夜激情免费电影| 欧美日韩视频免费观看| 狠狠精品干练久久久无码中文字幕|