【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. Email实例

    import java.util.Properties; import javax.activation.DataHandler; import javax.activation.DataSource ...

  2. Linux I/O重定向

    所谓I/O重定向简单来说就是一个过程,这个过程捕捉一个文件,或者命令,程序,脚本,甚至脚本中的代码块的输出,然后把捕捉到的输出,作为输入 发送给另外一个文件,命令,程序,或者脚本.谈到I/O重定向,就 ...

  3. 10.8-uC/OS-III内部任务(中断处理任务 OS_IntQTask())

    1.当设置OS_CFG.H中的OS_CFG_ISR_POST_DEFERRED_EN为1时, uC/OS-III就会创建一个任务,它的作用是尽快完成ISR中对post函数的调用, 将信号量.消息等对象 ...

  4. SpringBoot-区分不同环境配置文件

    spring.profiles.active=pre application-dev.properties:开发环境 application-test.properties:测试环境 applicat ...

  5. 什么是Docker?(一)

    Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,它是基于 dotCloud 公司多年云服务技术的一次革新,并于 2013 年 3 月以 ...

  6. Observer(__ob__: Observer) 对象添加属性

    重点通过这句话给对象添加属性: this.$set(r,'upshow',false); 在data中定义laws来装从接口中请求到数据 data(){ return{ laws:[],//法律依据 ...

  7. (转)通过Ajax使用FormData对象无刷新上传文件

    写在前面:本文说的这个方案有浏览器兼容性问题:所有主流浏览器的较新版本已经支持这个对象了,比如Chrome 7+.Firefox 4+.IE 10+.Opera 12+.Safari 5+,对兼容性比 ...

  8. [Java in NetBeans] Lesson 06. Custom classes

    这个课程的参考视频和图片来自youtube. 主要学到的知识点有: Constructors: A special method called when an object of the class ...

  9. APP网络优化篇

    Android Addresses are cached for 600 seconds (10 minutes) by default. Failed lookups are cached for ...

  10. 适用于 Windows 7 SP1 和 Windows Server 2008 R2 SP1 的 .NET Framework 4.6、4.6.1、4.6.2 和 4.7 以及适用于 Windows Server 2008 SP2 的 .NET Framework 4.6 仅安全更新说明:2017 年 9 月 12 日

    https://support.microsoft.com/zh-cn/help/4040957/description-of-the-security-only-update-for-the-net ...