“ji32k7au4a83”是一个弱密码?

据外媒The Verge报道,密码“ji32k7au4a83”可能看起来相当安全,这要归功于其看似随意的字母和数字组合。但出乎意料的是,通过 Have I Been Pwned网站检索发现,这个密码已经出现在141次数据泄露中。这个网站由安全专家Troy Hunt 发起,旨在帮助人们了解他们的电子邮件或个人数据是否出现在任何数据泄露中。

这引起了一个显而易见的问题:为何如此多的人使用这个密码?

硬件和软件工程师Robert Ou 首先发现了这个有趣的现象,并且要求人们弄清楚为什么ji32k7au4a83如此常用。中国台湾互联网用户迅速给出了答案。他们注意到在带有注音符号布局的中国台湾地区键盘上,字符串拼出了“我的密码”,或者说“wǒ de mìmǎ”。

上图显示了注音符号键盘布局。例如键入字母J,然后I,将添加两个符号(ㄨ+ㄛ),发音为u和o(显示在键的右上方),以形成wo。然后用户必须输入字符的第三声音调,因此是3. Ji3代表“wǒ”。

在中国台湾地区最常见的中文输入方式是一个名叫注音符号的系统,因为中国台湾地区小学基础教育就由注音符号教起,所以这种输入法是中国台湾地区电脑使用者最熟悉的中文输入法。

虽然ji32k7au4a83(“我的密码”)出现了141次数据泄露,但au4a83(“密码”)已经出现了1495次。

来源:cnbeta

 

 

 

 

 

 

JSP (JavaServer Pages) 和 SQL (Structured Query Language) 的结合常用于构建动态网站,包括用户登录注册功能。这里是一个简化的步骤描述和基本代码示例: 1. **步骤**: - 创建JSP页面(如login.jsp):设计HTML表单,包含用户名和密码输入字段以及登录按钮。 - 设计Servlet或控制器类处理请求:负责数据库交互、验证用户信息和转发请求。 ```html <!-- login.jsp --> <form action="LoginController" method="post"> <input type="text" name="username" placeholder="用户名"><br> <input type="password" name="password" placeholder="密码"><br> <input type="submit" value="登录"> </form> ``` 2. **Servlet/控制器(LoginController.java)**: - 引入`java.sql.*`, `javax.servlet.*`, `javax.servlet.http.*`等包。 - 连接数据库并创建Statement对象。 - 获取表单数据,并查询是否存在该用户。 ```java import javax.servlet.*; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; public class LoginController extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); String password = request.getParameter("password"); try { // 连接到数据库 Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db_name", "username", "password"); // 查询用户 PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM users WHERE username=? AND password=?"); pstmt.setString(1, username); pstmt.setString(2, encryptPassword(password)); // 对密码进行加密处理 ResultSet rs = pstmt.executeQuery(); if (rs.next()) { // 登录成功 // do something... } else { // 用户名或密码错误 request.setAttribute("error", "Invalid credentials"); } } catch (Exception e) { e.printStackTrace(); } } } ``` 3. **加密密码(例如使用MD5)**: 可能需要一个额外的方法对密码进行安全存储。这里是简单的MD5哈希例子: ```java import org.apache.commons.codec.digest.DigestUtils; public String encryptPassword(String password) { return DigestUtils.md5Hex(password); } ``` 4. **验证通过后**: 如果登录成功,可以将用户重定向到其他页面,比如首页。 请注意,这只是一个基础示例,实际项目中你需要考虑更多的因素,如异常处理、数据库连接池、会话管理等。同时,为了安全性,最好将敏感操作如数据库连接放在过滤器或Servlet中进行处理,而不是直接在JSP中编写。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值