当前位置:首页 » 密码管理 » 请加密

请加密

发布时间: 2022-12-29 08:04:25

① Android网络请求加密机制

密码学的三大作用:加密( Encryption)、认证(Authentication),鉴定(Identification)

加密 :防止坏人获取你的数据。 

鉴权 :防止坏人假冒你的身份。

认证 :防止坏人修改了你的数据而你却并没有发现。

1. URLEncode和URLDecoder 作用:URLEncode就是将URL中特殊部分进行编码。URLDecoder就是对特殊部分进行解码。

为什么URL要encode原因呢?

url转义其实也只是为了符合url的规范而已。因为在标准的url规范中 中文和很多的字符 是不允许出现在url中的。

2. Base64编码

为什么要进行Base64编码?

在计算机中任何数据都是按ascii码存储的,而ascii码的128~255之间的值是不可见字符。而在网络上交换数据时,比如说从A地传到B地,往往要经过多个路由设备,由于不同的设备对字符的处理方式有一些不同,这样那些不可见字符就有可能被处理错误,这是不利于传输的。所以就先把数据先做一个Base64编码,统统变成可见字符,这样出错的可能性就大降低了。

应用场景:主要是对于二进制数据进行编码,(文件、图片、加密后的二进制数据)

3. 消息认证算法

要确保加密的消息不是别人伪造的,需要提供一个消息认证码(MAC,Message authentication code) 。 

消息认证码是带密钥的hash函数,基于密钥和hash函数(单向散列函数)。

密钥双方事先约定,不能让第三方知道。

消息发送者使用MAC算法计算出消息的MAC值,追加到消息后面一起发送给接收者。 

接收者收到消息后,用相同的MAC算法计算接收到消息MAC值,并与接收到的MAC值对比是否一样。

消息认证码的作用:检查某段消息的完整性,以及作身份验证。

防止重放 攻击可以有 3 种方法:

序号

每条消息都增加一个递增的序号,并且在计算 MAC 值的时候把序号也包含在消息中。这样攻击者如果不破解消息认证码就无法计算出正确的 MAC 值。这个方法的弊端是每条消息都需要多记录最后一个消息的序号。

时间戳

发送消息的时候包含当前时间,如果收到的时间与当前的不符,即便 MAC 值正确也认为是错误消息直接丢弃。这样也可以防御重放攻击。这个方法的弊端是,发送方和接收方的时钟必须一致,考虑到消息的延迟,所以需要在时间上留下一定的缓冲余地。这个缓冲之间还是会造成重放攻击的可趁之机。

nonce

在通信之前,接收者先向发送者发送一个一次性的随机数 nonce。发送者在消息中包含这个 nonce 并计算 MAC 值。由于每次 nonce 都会变化,因此无法进行重放攻击。这个方法的缺点会导致通信的数据量增加。

4. 对称加密算法

特点:加解密只有一个密钥。优点:速度快、效率高。缺点:密钥交换问题。算法:AES(256字节,主流)、DES(8字节,淘汰)。

密钥交换问题如何解决,MAC同样也有这个问题,可以使用非对称加密传输,或者私下约定,密钥管理中心。

5. 非对称加密

非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密(这个过程可以做数字签名) 。 非对称加密主要使用的是RSA算法。

特点:公/私钥机制。优点:只需要交换公钥,安全。缺点:加解密速度慢,特别是解密。算法:RSA。应用:数字签名。

数字签名 :

简单解释:

A:将明文进行摘要运算后得到摘要(消息完整性),再将摘要用A的私钥加密(身份认证),得到数字签名,将密文和数字签名一块发给B。

B:收到A的消息后,先将密文用自己的私钥解密,得到明文。将数字签名用A的公钥进行解密后,得到正确的摘要(解密成功说明A的身份被认证了)。

数字证书 :

6. Android端 AES+RSA结合实践

基本流程

Android端

服务器端

基本上如下图所示的流程:

热点内容
加密狗威步 发布:2025-08-17 09:40:51 浏览:136
月报的算法 发布:2025-08-17 09:36:25 浏览:894
安卓版本10怎么打开隐藏游戏 发布:2025-08-17 09:33:25 浏览:590
php获取地址栏 发布:2025-08-17 09:31:59 浏览:121
燃料存储检查 发布:2025-08-17 09:30:45 浏览:679
怎么取消qq漫游密码 发布:2025-08-17 09:24:53 浏览:457
linux微型 发布:2025-08-17 09:18:26 浏览:524
一个服务器怎分为多台电脑 发布:2025-08-17 09:17:29 浏览:975
服务器被入侵怎么办 发布:2025-08-17 09:12:29 浏览:56
python保存到excel 发布:2025-08-17 09:12:28 浏览:669