基于OTP的AES数据加密
来源:互联网 发布:三观尽毁的淘宝买家秀 编辑:程序博客网 时间:2024/06/05 15:35
OTP(One Time Password)
单次有效密码,即使用一次就失效的密码,也就说每次使用都是一个不同的密码。现在普遍用来作为认证的二次验证。这种二次验证的好处是能有效抵御暴力破解。
要使用这种密码就得有生产此种密码的生成方式:
- HTOP(HMAC-based One-time Password Algorithm) 基于计数器生成密码
- TOTP(Time-based One-time Password Algorithm) 基于HTOP,时间作为计数器
加密原理
基于AES + TOTP 的加密向量固定,动态生成密码(16位)
- data: 数据
- iv: AES加密向量
- key: TOTP密钥
- tm: 时间戳
- tmStep: 时间步长(Google默认步长是30秒)
- ws: 时间窗口大小
- aesKey: aes加密密钥
AESTOTP(data, iv, key, tm, tmStep, ws) = AES(data, iv, TOTP(key, tm, tmStep, ws)) = AES(data, iv, aesKey)
时间容错
为了处理服务器时间差异和传输时间损耗导致的时间不一致,设定时间窗口大小为3,时间步长30秒,这样就达到了总时间容错在90秒。我们现在运行的系统是使用的2分钟的时间步长,将容错扩展到了6分钟。
总结:简单有效
0 0
- 基于OTP的AES数据加密
- Java基于AES的加密与解密
- java编写的AES数据加密
- android 数据加密AES
- 基于Android系统的AES加密、解密的JAVA实现
- 基于AES对称加密解密的代码块
- JAVA的AES加密
- 简单的aes加密
- php 的aes加密
- AES 的加密操作
- PHP的AES加密
- android 使用Aes加密数据
- AES加密解密的数据和android的不一样效果?
- 使用AES算法完成对数据的加密和解密
- android开发 文件数据的AES-128方式加密解密
- android数据加密(二)AES加密
- Android数据加密之Aes加密
- 加密它:用新的高级加密标准(AES)保持你的数据安全
- 第29个python程序:if语句
- ubuntu-make
- 使用adb抓取进程的hprof
- 一个统计当前网段活动IP数量的脚本
- 邮件系统的实现原理和协议解析
- 基于OTP的AES数据加密
- swift使用结构体还是类
- java多级文件复制
- Java的消亡
- phpunit PhpStorm相关配置
- 【蜂鸟视图】FengMap JavaScript SDK v1.2.0 “热力”上新!
- 智能小车制作过程全纪录: 二、软件平台--- Arduino底盘驱动
- Jquery1.9 attr、prop的用法
- java常用数据结构的转换,不定期更新