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

資訊專欄INFORMATION COLUMN

4W2H之加密簽名

stackfing / 3112人閱讀

摘要:從上面的介紹中可以看出,加密主要是用來使數(shù)據(jù)無法被識別,而簽名主要是用來確保數(shù)據(jù)未被修改。又被稱為非對稱加密,擁有一個公鑰和一個私鑰,公鑰可以交給對方,私鑰自己保存。公鑰用作加密使用,而私鑰用于簽名。

what 什么是加密和簽名

??加密,用某種特殊的方式對數(shù)據(jù)進(jìn)行處理,使其他人或者機(jī)器無法正常處理。如常用的rsa非對稱加密,MD5,des和aes對稱加密等等。
??簽名,在傳輸數(shù)據(jù)前先對數(shù)據(jù) "a" 進(jìn)行處理得到數(shù)據(jù) ‘b’,這部分操作被稱為簽名。然后將a 和 b發(fā)送給接受者,接受者獲得數(shù)據(jù)后對數(shù)據(jù) "b" 進(jìn)行 解簽得到數(shù)據(jù) ‘c’,如果數(shù)據(jù)‘c’和數(shù)據(jù)‘a(chǎn)’一樣,則認(rèn)為數(shù)據(jù)沒有被修改。
??從上面的介紹中可以看出,加密主要是用來使數(shù)據(jù)無法被識別,而簽名主要是用來確保數(shù)據(jù)未被修改。

when 哪些場景使用

??在安全為重中之重的支付領(lǐng)域,常常會采用加密和加簽的方式來確保數(shù)據(jù)的安全性。由于RAS這種加密方式不容易被破解,因此通常使用它確保安全。
??RAS又被稱為非對稱加密,擁有一個公鑰和一個私鑰,公鑰可以交給對方,私鑰自己保存。公鑰用作加密使用,而私鑰用于簽名。
??首先,商戶會生成一對公私鑰,公鑰交給銀行。而銀行同樣也會將生成的公鑰交給商戶。商戶向銀行發(fā)送支付報文時,先用自身的私鑰對支付需要的參數(shù)進(jìn)行簽名生成sign這個字段,接著將sign這個字段值和之前的參數(shù)用銀行的公鑰加密,接著通過某些傳輸協(xié)議發(fā)送給銀行。
??銀行得到報文后,用自身的私鑰進(jìn)行解密,如果不能解開,證明不是商戶發(fā)的。如果解密成功,再用商戶的公鑰對sign進(jìn)行解簽,與數(shù)據(jù)進(jìn)行對比判斷。

why 為什么 為什么不用Des,Aes或者M(jìn)d5。

??Des這些對稱加密,需要的是一個key。這些key在一定條件下可以被暴力破解,MD5同樣也是如此。

為什么不用公鑰加簽,私鑰加密?

??假設(shè)用私鑰加密,公鑰加簽。那么在商戶發(fā)給銀行的過程中,銀行需要用公鑰解密,由于公鑰是被暴露在外面的,如果被非銀行的人拿到,數(shù)據(jù)被解密后就能看到了,雖然他不能確定這些數(shù)據(jù)有沒有被修改過。而如果用公鑰加密,私鑰是掌握在銀行手中。

where 哪些地方需要注意

不一定Md5只能用來加密,同樣可以用來加簽。

RAS雖然安全,但是會給開發(fā)帶來難度。

How to use 加簽
       Map map=new HashMap<>();
        map.put("client_id", AppConstant.APPID);
        map.put("method","user.baseinfo");
        map.put("access_token",accessToken);
        map.put("timestamp",String.valueOf(System.currentTimeMillis()));
        map.put("client_secret",AppConstant.APPSECRET);
        String sign= MD5.md5Sign(map);
        map.put("sign",sign);
        
        /**md5加簽**/
        public static String md5Sign(Map params){
            String[] keys = params.keySet().toArray(new String[0]);
            Arrays.sort(keys);
            // 第二步:把所有參數(shù)名和參數(shù)值串在一起
            StringBuilder query = new StringBuilder();
            for (String key : keys) {
                String value = params.get(key);
                query.append(key).append(value);
            }
            // 第三步:md5加密
        return DigestUtils.md5Hex(query.toString());
    }

這段代碼用的是md5方式進(jìn)行加簽,在這邊應(yīng)該可以看出來加簽只是加密的一種運(yùn)用。

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

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/71980.html

相關(guān)文章

  • 加密安全分析系列某打車軟件apk

    摘要:最近發(fā)現(xiàn)打車軟件的非常的火,并聽說他們進(jìn)行了非常嚴(yán)密的防護(hù),防止用戶進(jìn)行二次打包。經(jīng)過嚴(yán)密的分析發(fā)現(xiàn)司機(jī)版主要的防護(hù)在兩個地方。 最近發(fā)現(xiàn)打車軟件的apk非常的火,并聽說他們進(jìn)行了非常嚴(yán)密的防護(hù),防止用戶進(jìn)行二次打包。今天我們來分析一下他的安全性到底如何(以司機(jī)版為例)。 經(jīng)過嚴(yán)密的分析發(fā)現(xiàn):司機(jī)版主要的防護(hù)在兩個地方。 第一個是:登錄過程中,通過傳遞context對象到so庫中的方...

    zhkai 評論0 收藏0
  • BREW SDK 九大功能安全服務(wù)

    摘要:中的安全服務(wù)是指應(yīng)用程式使用提供的來實(shí)現(xiàn)安全性的功能。同時,提供了非對稱算法加密。非對稱算法加密過程如下發(fā)送方對明文使用加密算法和公開密鑰進(jìn)行加密,得到密文接收方對密文使用解密算法和私人密鑰進(jìn)行解密,得到明文。 BREW中的安全服務(wù)是指應(yīng)用程式使用BREW提供的API來實(shí)現(xiàn)安全性的功...

    sixleaves 評論0 收藏0
  • Swoole 源碼分析——Server模塊OpenSSL (上)

    摘要:另一方比如小明得到公鑰之后,雙方就可以通信。然而,中間人還是可能截獲公鑰,然后自己弄一對秘鑰,然后告訴小明說是小紅的公鑰。這樣,小亮在簽署小紅的身份證的時候,可以在小紅身份證后面附上自己的身份證。一般來說,自簽名的根身份證用于公司內(nèi)部使用。 前言 自從 Lets Encrypt 上線之后,HTTPS 網(wǎng)站數(shù)量占比越來越高,相信不久的未來就可以實(shí)現(xiàn)全網(wǎng) HTTPS,大部分主流瀏覽器也對 ...

    ky0ncheng 評論0 收藏0

發(fā)表評論

0條評論

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