加密与安全

編碼算法

ASCII編碼最多只能有127個字符,要想用更多的文字進行編碼,就要占用兩個字節的Unicode。而中文的編碼utf-8需要三個字節編碼
因此,最簡單的編碼是直接給每個字符指定一個若干字節表示的整數,複雜一點的編碼就是要根據一個已有的編碼推算出來。

URL編碼

url編碼是瀏覽器發送給服務器時使用的編碼,哦通常在參數部分
java提供了一個URLEncoder類來對任意字符串進行URL編碼
在这里插入图片描述
如果服務器收到編碼過後的字符串,就可以對其進行解碼,還原成原始字符串,標準庫的URLDecoder就可以解碼
在这里插入图片描述

Base64編碼

URL编码是对字符进行编码,而Base64s是对二进制书进行编码,表示成文本格式
Base64可以把任意长度的二进制数变为纯文本,并且只包含指定字符内容
比如读取图片内容,代码如下
在这里插入图片描述

哈希算法

概述

哈系算法又叫摘要算法,作用是:对任意一组输入数据进行计算,得出一个固定长度的字符串,是为了验证原始数据是否被篡改
特点:相同的输入一定得到相同的输出
不同的输入大概率得到不同的输出

常用哈希算法

在这里插入图片描述
MD5算法
在这里插入图片描述

哈希算法的用途

校验下载文件
存储用户密码
SHA-1也是一种哈希算法,他的输出是160bit20字节,代码如下
在这里插入图片描述

Hmac算法

存储哈希口令时要加盐存储,目的在于抵御彩虹攻击

加盐

Hmac总是和某种哈希算法配合使用,salt可以看作是一个额外的认证码。同样的输入会产生不同的输出
因此要验证输出的哈希必须同时提供认证码
Hmac算法就是一种基于密钥的消息认证码算法。
HmacMD5使用的是长度为64字节的key更安全
输出和原来长度一致
代码如下
在这里插入图片描述

验证 Hmac计算的哈希和SecretKey

代码如下
在这里插入图片描述

  • 19
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值