内容简介:作为最受欢迎的御三家之一,想必大家对于小火龙还是相当熟悉的,那么图片的这个场景发生在哪里呢?这个“秘密”就靠大家来破解了。答案将在结尾揭晓~~加密,用某种特殊的方式对数据进行处理,使普通的接受者无法正常处理数据。如常用的签名,在传输数据前先对数据
作为最受欢迎的御三家之一,想必大家对于小火龙还是相当熟悉的,那么图片的这个场景发生在哪里呢?这个“秘密”就靠大家来破解了。答案将在结尾揭晓~~
什么是加密和签名
加密,用某种特殊的方式对数据进行处理,使普通的接受者无法正常处理数据。如常用的 RSA 非对称加密, MD5 , DES 和 AES 对称加密等等。
签名,在传输数据前先对数据 A 进行处理得到数据 B ,然后将 A 和 B 发送给接受者,接受者获得数据后对数据 B 进行 解签得到数据 C ,如果数据 C 和数据 A 一样,则认为数据没有被修改。
从上面的介绍中可以看出,加密主要是用来使数据无法被正确识别,而签名主要是用来确保数据未被修改。
哪些场景使用
在安全为重中之重的支付领域,常常会采用加密和加签的方式来确保数据的安全性。由于RAS这种加密方式不容易被破解,因此通常使用它保证数据安全。
RAS又被称为非对称加密,拥有一个公钥和一个私钥,公钥可以交给对方,私钥自己保存。公钥用作加密使用,而私钥用于签名。
首先,商户会生成一对公私钥,公钥交给银行。而银行同样也会将生成的公钥交给商户。商户向银行发送支付报文时,先用自身的私钥对支付需要的参数进行签名生成sign这个字段,接着将sign这个字段值和之前的参数用银行的公钥加密,接着通过某些传输协议发送给银行。
银行得到报文后,用自身的私钥进行解密,如果不能解开,证明不是商户发的。如果解密成功,再用商户的公钥对sign进行解签,与数据进行对比判断。
为什么
为什么不用Des,Aes或者Md5。
Des这些对称加密,需要的是一个key。这些key在一定条件下可以被暴力破解,MD5同样也是如此。
为什么不用公钥加签,私钥加密?
假设用私钥加密,公钥加签。那么在商户发给银行的过程中,银行需要用公钥解密,由于公钥是被暴露在外面的,如果被非银行的人拿到,数据被解密后就能看到了,虽然他不能确定这些数据有没有被修改过。而如果用公钥加密,私钥是掌握在银行手中。
哪些地方需要注意
- 不一定Md5只能用来加密,同样可以用来加签。
- RAS虽然安全,但是会给开发带来难度。
How to use
加签
Map<String,String> 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<String,String> params){
String[] keys = params.keySet().toArray(new String[0]);
Arrays.sort(keys);
// 第二步:把所有参数名和参数值串在一起
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方式进行加签,在这边应该可以看出来加签只是加密的一种运用,因此任何一种加密方式都可以用做签名。
本人昨天刚刚离职,可能是更想去看看外面精彩的世界吧,和小智一样想要成为神奇宝贝大师~~~
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 加密和签名技术分析
- 对称加密,非对称加密,数字签名,数字证书,SSL握手
- 一分钟了解加密钱包多重签名原理
- 非对称加密 Rsa 数字签名 Go 实战
- 非对称加密Rsa数字签名Go实战
- [译] 用 Golang 实现 RSA 加密和签名(有示例)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
计算机组成:结构化方法
坦嫩鲍姆 / 刘卫东 / 人民邮电出版社 / 2006-1 / 65.00元
本书采用结构化方法来介绍计算机系统,书的内容完全建立在“计算机是由层次结构组成的,每层完成规定的功能”这一概念之上。作者对本版进行了彻底的更新,以反映当今最重要的计算机技术以及计算机组成和体系结构方面的最新进展。书中详细讨论了数字逻辑层、微体系结构层、指令系统层、操作系统层和汇编语言层,并涵盖了并行体系结构的内容,而且每一章结尾都配有丰富的习题。 本书适合作为计算机专业本科生计算机组......一起来看看 《计算机组成:结构化方法》 这本书的介绍吧!
SHA 加密
SHA 加密工具
XML、JSON 在线转换
在线XML、JSON转换工具