摘要:從上面的介紹中可以看出,加密主要是用來使數(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ù)未被修改。
??在安全為重中之重的支付領(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)行對比判斷。
??Des這些對稱加密,需要的是一個key。這些key在一定條件下可以被暴力破解,MD5同樣也是如此。
為什么不用公鑰加簽,私鑰加密???假設(shè)用私鑰加密,公鑰加簽。那么在商戶發(fā)給銀行的過程中,銀行需要用公鑰解密,由于公鑰是被暴露在外面的,如果被非銀行的人拿到,數(shù)據(jù)被解密后就能看到了,雖然他不能確定這些數(shù)據(jù)有沒有被修改過。而如果用公鑰加密,私鑰是掌握在銀行手中。
where 哪些地方需要注意不一定Md5只能用來加密,同樣可以用來加簽。
RAS雖然安全,但是會給開發(fā)帶來難度。
How to use 加簽Mapmap=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
摘要:最近發(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庫中的方...
摘要:中的安全服務(wù)是指應(yīng)用程式使用提供的來實(shí)現(xiàn)安全性的功能。同時,提供了非對稱算法加密。非對稱算法加密過程如下發(fā)送方對明文使用加密算法和公開密鑰進(jìn)行加密,得到密文接收方對密文使用解密算法和私人密鑰進(jìn)行解密,得到明文。 BREW中的安全服務(wù)是指應(yīng)用程式使用BREW提供的API來實(shí)現(xiàn)安全性的功...
摘要:另一方比如小明得到公鑰之后,雙方就可以通信。然而,中間人還是可能截獲公鑰,然后自己弄一對秘鑰,然后告訴小明說是小紅的公鑰。這樣,小亮在簽署小紅的身份證的時候,可以在小紅身份證后面附上自己的身份證。一般來說,自簽名的根身份證用于公司內(nèi)部使用。 前言 自從 Lets Encrypt 上線之后,HTTPS 網(wǎng)站數(shù)量占比越來越高,相信不久的未來就可以實(shí)現(xiàn)全網(wǎng) HTTPS,大部分主流瀏覽器也對 ...
閱讀 713·2023-04-25 17:54
閱讀 2972·2021-11-18 10:02
閱讀 1132·2021-09-28 09:35
閱讀 649·2021-09-22 15:18
閱讀 2847·2021-09-03 10:49
閱讀 3051·2021-08-10 09:42
閱讀 2573·2019-08-29 16:24
閱讀 1255·2019-08-29 15:08