java接口加密方式_api接口数据加密和身份验证详解

一、加密方式

对称加密和非对称加密。

对称加密:加解密是同一个密钥,速度快,数据接收方需要公布其私钥给数据传输方,安全性完全依赖于该密钥。如AES,3DES,DES等,适合做大量数据或数据文件的加解密。

非对称加密:加密用公钥,解密用私钥。公钥和私钥是成对的(可借助工具生成,如openssl等),即用公钥加密的数据,一定能用其对应的私钥解密,能用私钥解密的数据,一定是其对应的公钥加密。对大量数据或数据文件加解密时,效率较低。如RSA,Rabin等,数据接收方需公布其公钥给数据传输方,私钥自己保留,安全性更高。

加密性能比较:

下面给出对称加密(AES)和非对称加密(RSA)效率的参考数据比较:

对称加密(AES):

fff6c98081bf8904098fb5e1bd59ff4b.gif

非对称加密:(RSA)

fff6c98081bf8904098fb5e1bd59ff4b.gif

二、api加密传输方案设计

如果数据传输大,密钥不需要进行网络传输,数据不需要很高的安全级别,则采用对称加密,只要能保证密钥没有人为外泄即可;如果数据传输小,而且对安全级别要求高,或者密钥需要通过internet交换,则采用非对称加密;绝大多数场景下,一般采用两者结合的方式。即通过对称加密进行业务数据体的加密,通过非对称加密进行对称加密密钥的加密,这样,即可保证一定的效率以及数据和密钥的安全。

三、数字签名

作用:保证信息传输的完整性、发送者的身份验证、防止交易中的抵赖发生。

数字签名是为了做一个客户合法性和数据完整性的校验,防止流氓软件对数据传输进行拦截,对数据篡改后再传输。一般是通过hash函数计算出一个固定长度的哈希串(如md5,一般是根据授权的用户信息和选取数据体报文的摘要作为计算规则),加密后与数据体密文一起传输给接收方,接收方在对数据解密后,以相同的规则进行hash串的计算,如果两者一样,则证明该次请求是合法的。

四、api数据传输流程

以下示意图对称加密采用Aes方式,非对称加密采用RSA方式,实际使用过程中,根据实际情况做取舍。

fff6c98081bf8904098fb5e1bd59ff4b.gif

五、相关探讨

https传输中应用层的双向验证。

你可能感兴趣的:(java接口加密方式)