【Alpha版本】冲刺阶段——Day2

阅读目录

* [今日进展](#1)
* [问题困难](#2)
* [明日任务](#3)
* [今日贡献量](#4)
* [站立式会议](#5)
* [TODOlist](#6)

【今日进展】

密码算法方面:

  • 存储密码的步骤

    1. 使用CSPRNG生成一个长度足够的盐值
    2. 将盐值混入密码,并使用标准的加密哈希函数进行加密
    3. 把哈希值和盐值一起存入数据库中对应此用户的那条记录
  • 校验密码的步骤

    1. 从数据库取出用户的密码哈希值和对应盐值
    2. 将盐值混入用户输入的密码,并且使用同样的哈希函数进行加密
    3. 比较上一步的结果和数据库储存的哈希值是否相同,如果相同那么密码正确,反之密码错误
  • 实现加盐哈希的过程中要避免的错误:

    • 错误一:短盐值和盐值重复。用户创建账户或每次修改密码时,都应该重新生成新的盐值进行加密;如果盐值太短,攻击者可以构造一个查询表包含所有可能的盐值,因此要保证盐值占有相对长的位数。
    • 错误二:两次哈希和组合哈希函数。
  • 参考资料:加盐密码哈希:如何正确使用

连接数据库

  • 参考教材P334页代码编写GetDBConnection类,实现与数据库的连接

  • 编写程序 CreatTable类,使程序在运行时自动在MySQL数据库中创建表格javablacktea,并且表格中含有用户名、加密后的密码、盐值等项目

public class CreatTable {
static String creatsql = "CREATE TABLE javablacktea("
+ "username varchar(50) not null,"
+ "hash varchar(200) not null,"
+ "salt varchar(50) not null"
+ ")charset=utf8;";
public static void Creat() throws SQLException {
Connection con;
Statement stmt;
con = GetDBConnection.connectDB("mysql","root",""); try {
stmt=con.createStatement();
stmt.executeLargeUpdate(creatsql);
stmt.close();
con.close();
}
catch(Exception e) {}
}
}

【问题困难】

  • 原先考虑使用课程中学习过的MD5算法进行加密,但经过一番查询调研后发现,该算法早已过时,网上甚至有专门的网站:http://www1.cmd5.com/ 破解MD5,因此我们需重新选择哈希算法。

【明日任务】

  • 韩啸: 辅助组员完成任务,理解已编写出的程序代码,对自己负责部分内容进行学习

  • 夏云霄: 辅助组员完成任务,理解已编写出的程序代码,对自己负责部分内容进行学习

  • 陈思兵: 辅助组员完成任务,理解已编写出的程序代码,对自己负责部分内容进行学习

  • 朱文远:寻找新的加密算法,编写程序加密部分算法

  • 张家佳:辅助组员完成任务,理解已编写出的程序代码,收集团队成员进展并且汇总,撰写博客

【今日贡献量】

韩啸 夏云霄 陈思兵 朱文远 张家佳
2 3 2 5.5 3.5

【站立式会议】

【TODOlist】

【Alpha版本】冲刺阶段——Day2的更多相关文章

  1. 作业七:团队项目——Alpha版本冲刺阶段

      本次作业为期三周时间,要求各组结合所选项目并阅读教材<构建之法>第六章内容,完成项目的Alpha版本.本阶段的主要内容如下:(20分) 1. 每天组织一次站立会议,讨论每个成员的昨天进 ...

  2. 作业七:团队项目——Alpha版本冲刺阶段010

    今日安排:组内成员讨论 今日进程:组内成员讨论结束,并有明确的解决办法,每个人准备实践

  3. 作业七:团队项目——Alpha版本冲刺阶段009

    今日安排:组内成员讨论 今日进度:组内成员讨论分工细节以及可能遇到的问题,并提出解决方案

  4. 作业七:团队项目——Alpha版本冲刺阶段008

    今日进度:组内成员讨论 今日安排:组内成员分工

  5. 作业七:团队项目——Alpha版本冲刺阶段007

    今日进展:完善游戏主体代码. 今日安排:让游戏能运行起来.

  6. 作业七:团队项目——Alpha版本冲刺阶段006

    今日进展:完成主体代码. 今日安排:对程序主体进行编写.

  7. 作业七:团队项目——Alpha版本冲刺阶段005

    今日进展:编写代码. 今日安排:完成开始部分代码.

  8. 作业七:团队项目——Alpha版本冲刺阶段004

    今日进展:我们的扫雷基本界面已经差不多了,准备开始编写内部代码. 今日安排:做好界面,准备开始代码编写.

  9. 作业七:团队项目——Alpha版本冲刺阶段003

    今日进展:我们的目标是做一款扫雷游戏,所以我们先去玩了几款游戏,找到了扫雷游戏的一些特点. 今日安排:先进行了一些必要的游戏过程,进行了基本的扫雷界面规划.

  10. 作业七:团队项目——Alpha版本冲刺阶段002

    今日进展:我们终于安装好了软件,今天开始进行作业设计. 今日安排:今天开始我们要开始我们的框架的设计.

随机推荐

  1. 29-2-电容触摸屏控制芯片GT911

    1.接口说明 GT9 非单层多点系列(以下简称 GT9 系列) 与主机接口共有 6 PIN,分别为: VDD. GND. SCL.SDA. INT. RESET. 主控的 INT 口线需具有上升沿或下 ...

  2. 火币网API文档——REST API 签名认证

    安全认证 目前关于apikey申请和修改,请在“账户 - API管理”页面进行相关操作.其中AccessKey为API 访问密钥,SecretKey为用户对请求进行签名的密钥(仅申请时可见).Pro站 ...

  3. 007-js中的Array常用方法

    原文:http://www.runoob.com/jsref/jsref-obj-array.html 摘要常用方法 const array=new Array(); // 1 增加元素 // 1.1 ...

  4. DataTable 指定位置添加列

    dt.Columns.Add("id").SetOrdinal(指定位置);

  5. Redis入门到高可用(二)—— Redis启动及使用

    1. 三种启动方式 ♦️  最简启动 ./redis-server 使用Redis默认配置进行启动; ♦️  动态参数启动 * redis-server --port 6380  更改端口为6380并 ...

  6. abap函数返回结构体类型

    1: 定义一个结构体 T-CODE   se11 2: 选择 structure 3:输入相应的字段 4:激活 5:创建一个function module zfm_return_table,返回类型为 ...

  7. 银联卡中关于CVN/CVN2/ICVN的区别

    银联China Union Pay,是中国唯一合法的卡组织机构,同时也是EMVCo成员.关于银联卡中CVN/CVN2/ICVN的区别,刚开始我自己不了解,但经过查找资料和请教其他人,对它们的概念也渐渐 ...

  8. 使用autoconf与automake自动生成MakeFile文件

    automake主要通过编辑Makefile.am来控制它的行为,下面就常用的三个Makefile.am配置做出说明. 1.1. autotools的工作原理 autotools最终是为了生成Make ...

  9. 【LeetCode每天一题】Group Anagrams(变位词组)

    Given an array of strings, group anagrams together. Example: Input: ["eat", "tea" ...

  10. git 不区分文件大小写的处理