移动终端 Web版 密码控件实现方式

本文介绍了一种基于JS+CSS的Web版安全输入组件,通过服务端控制客户端输入逻辑,确保密码安全。组件特点包括清除客户端残留、RSA加密传输以及屏幕自适应。实现流程涉及服务端生成HTML密码控件、前端加密提交和服务端解密处理。详细实现包括数字、字母和全键盘的随机字符生成,以及对应的图片和HTML制作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、概要
      基于 JS+CSS,采用服务端控制客户端输入逻辑的 Web 版安全输入组件,采用这种机制,可大幅度提高手机、平板系统浏览器中输入密码的安全性。 

组件特点: 
1、用户输入的密码信息在客户端中不会有任何残留,可有效防止恶意程序通过接口,内存查看等方式获取用户密码; 
2、采用 RSA 加密算法对输入内容进行加密,避免恶意程序对通讯链路中的数据进行拦截分析; 
3、可自适应现有主流屏幕分辨率。 

二、实现流程
1、 页面初始化,请求服务端根据规则生成相应的html(密码控件)并返回给前端
2、 用户使用返回的html(密码控件),输入相应的密码
3、 前端将输入的密码通过js RSA算法加密并提交到服务端
4、 服务端根据规则解密后并进行业务逻辑的后续处理

三、实现细节
1、 密码键盘分为数字键盘、字母键盘(含大小写)和全键盘
2、 如果是数字键盘:生成随机安全随机数 0 ~ 9,根据 SecureRandom.nextInt()方法
3、 如果是字母键盘:生成随机26个英文字母,根据chars(97 + i)
4、 如果是全键盘:则是2 、3点的组合
5、 创建一个NumberPasswordImageMaker类,用于将数字按照设定的规则转换成图片 ImageInfo 类
6、 创建一个AlphabetPasswordImageMaker类,用于将字母(含大小写)按照设定的规则转换成图片 ImageInfo 类
7、 创建一个HTMLMaker类,用于将生成的图片转换成DIV
8、 将DIV中对应的KeyIdnex保存在HttpSession中,用于后续比较
9、 将生成的DIV通过约定的方式返回给前端




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值