CN111181714A - 密码生成及认证方法、装置、电子设备及介质 - Google Patents

密码生成及认证方法、装置、电子设备及介质 Download PDF

Info

Publication number
CN111181714A
CN111181714A CN201911142620.8A CN201911142620A CN111181714A CN 111181714 A CN111181714 A CN 111181714A CN 201911142620 A CN201911142620 A CN 201911142620A CN 111181714 A CN111181714 A CN 111181714A
Authority
CN
China
Prior art keywords
password
result
hash
splicing
hashing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201911142620.8A
Other languages
English (en)
Inventor
张宇驰
李孝猛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Aisino Corp
Original Assignee
Aisino Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Aisino Corp filed Critical Aisino Corp
Priority to CN201911142620.8A priority Critical patent/CN111181714A/zh
Publication of CN111181714A publication Critical patent/CN111181714A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开实施例公开了一种密码生成及认证方法、装置、电子设备及介质。其中,密码生成方法,包括:对第一密码进行散列,得到散列结果;将盐值和所述散列结果进行拼接,得到拼接结果;对所述拼接结果进行散列,得到第二密码。通过盐值对密码进行散列,作为密码生成的变量,将密码和盐值的散列结果当作新密钥,从而达到防止暴力破解,增加密钥安全性的目的。

Description

密码生成及认证方法、装置、电子设备及介质
技术领域
本发明属于本公开涉及加密领域,尤其涉及一种密码生成及认证方法、装置、电子设备及介质。
背景技术
目前互联网在线服务的用户认证技术,大体框架上都使用公钥签名,私钥验签的技术。但在这个框架内,各家使用的技术各不相同。现有技术中被加密的密码是唯一固定的值,加密结果也是唯一固定的,攻击者可能通过暴力破解获取密码。
发明内容
有鉴于此,本公开实施例提供了一种密码生成及认证方法、装置、电子设备及介质,至少解决现有技术中固定值密码被破解的问题。
第一方面,本公开实施例提供了一种密码生成方法,包括:
对第一密码进行散列,得到散列结果;
将盐值和所述散列结果进行拼接,得到拼接结果;
对所述拼接结果进行散列,得到第二密码。
作为本公开实施例的一种具体实现方式,所述盐值设置有效期,且所述有效期能自定义。
作为本公开实施例的一种具体实现方式,所述对第一密码进行散列,得到散列结果的步骤之前,还包括:
响应用户请求,生成第一密码和盐值。
作为本公开实施例的一种具体实现方式,所述散列为:
使用散列算法进行散列计算。
第二方面,本公开实施例还提供了一种认证方法,包括:
响应用户请求,获取用户令牌,所述请求内包含第一方面任一所述的第二密码;
基于所述请求内的第二密码完成认证。
作为本公开实施例的一种具体实现方式,所述基于所述请求内的第二密码完成认证,包括:
获取所述请求内的第二密码;
验证所述第二密码是否正确;
如验证结果为正确,则返回用户令牌,完成认证。
第三方面,本公开实施例还提供了一种密码生成装置,包括:
密码散列模块:用于对第一密码进行散列,得到散列结果;
拼接模块:用于将盐值和所述散列结果进行拼接,得到拼接结果;
密码生成模块:用于对所述拼接结果进行散列,得到第二密码。
第四方面,本公开实施例还提供了一种电子设备,该电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有能被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面任一所述的密码生成方法;
和/或
以使所述至少一个处理器能够执行第二方面任一所述的认证方法。
第五方面,本公开实施例还提供了一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行权利要求第一方面任一所述的密码生成方法;
和/或
用于使计算机执行权利要求第二方面任一所述的认证方法。
本公开实施例提供的密码生成方法,通过盐值对密码进行散列,作为密码生成的变量,将密码和盐值的散列结果当作新密钥,从而达到防止暴力破解,增加密钥安全性的目的。且盐值是可控的,增强了管控力度。
上述说明仅是本公开技术方案的概述,为了能更清楚了解本公开的技术手段,而可依照说明书的内容予以实施,并且为让本公开的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
附图说明
通过结合附图对本发明示例性实施方式进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显,其中,在本发明示例性实施方式中,相同的参考标号通常代表相同部件。
图1为本公开实施例提供的密码生成方法的流程图;
图2为本公开实施例提供的使用国密算法SM3对盐值和密码处理的流程图;
图3为本公开实施例提供的认证方法的流程图;
图4为本公开实施例提供的调用政务系统中查询接口的流程图;
图5为本公开实施例提供的基于用户请求内的第二密码完成认证的流程图;
图6为本公开实施例提供的密码生成装置的原理框图;
图7为本公开实施例提供的认证装置的原理框图;
图8为本公开实施例提供的认证模块的原理框图。
具体实施方式
下面将更详细地描述本发明的优选实施方式。虽然以下描述了本发明的优选实施方式,然而应该理解,可以以各种形式实现本发明而不应被这里阐述的实施方式所限制。
应当明确,以下通过特定的具体实例说明本公开的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本公开的其他优点与功效。显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。本公开还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本公开的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
目前在互联网上传输用户密码,一般都使用如SHA1,SHA256,MD5等常用的国际标准散列算法。我国政府部门均把国密算法作为加密标准,国密算法中的散列算法为SM3。
盐值是在密码hash过程中添加的额外的随机值。
实施例一:
参见图1,本公开实施例提供一种密码生成方法。包括如下步骤:
S101:对第一密码进行散列,得到散列结果;
当用户通过终端进行访问时,首先需要注册,用户注册时,响应用户请求,生成第一密码和盐值。其中盐值设置有效期,且有效期能自定义。
对第一密码进行散列具体的为对第一密码采用散列算法进行散列计算从而得到散列结果。
在一个具体的应用场景中,如在政府部门政务系统的应用场景中,首先用户在政府部门的政务系统上注册账号,注册成功后会得到密码和盐值。盐值的有效期默认为24小时,也可以根据需求将有效期设置为任意期限,达到有效期后会自动刷新,旧的盐值将不再可用。政务系统的管理员可以更改盐值有效期,且可以查看到任何用户的盐值。
用户在政务系统上注册账号,获得用户密码和盐值以后,可以使用SM3散列算法对获取到的用户密码进行散列,得到result1=SM3(pass)。
S102:将盐值和所述散列结果进行拼接,得到拼接结果;
将获取的盐值与散列结算得到的散列结果进行拼接,得到result2=result1+salt(盐值)。
S103:对所述拼接结果进行散列,得到第二密码。
使用散列算法对拼接结果进行散列计算,得到新的数据串,即第二密码。
在一个具体的应用场景中,拼接实例如下:
拼接实例如下:
第一密码散列结果为:
qfIDdGxjCXJhC1Igpap34GZ/BBHyXNHYaXNwm8JO6e8=,
盐值为:
pGe9vCaE1kb+P6WglZpQ3w==,
则拼接结果为:
qfIDdGxjCXJhC1Igpap34GZ/BBHyXNHYaXNwm8JO6e8=pGe9vCaE1kb+P6WglZpQ3w==。
对上述拼接结果再次进行散列,得到第二密码,结果为:648DB9886AA6A3CD833F3E45BD281B97C665D825C4EA375BF480EC9DBD779F6C。
如在政府部门政务系统的应用场景中散列算法仍然采用SM3散列算法。
在密码生成过程中,如图2所示,SM3首先对用户密码原文进行散列计算,得到的散列结果再与盐值进行拼接。然后对于拼接后的结果再次使用SM3进行散列计算。用公式表示为:Hash=SM3((SM3(pass)+salt))。
本实施例中的密码生成方法使用符合国密局认定的国密算法SM3,利用安全且可控的盐值使密码不易被破解。且盐值具有有效期,政务系统管理员可以查询变更有效期,提高了安全性。散列算法使用国密算法,符合国密局标准,便于推广。
实施例二:
参见图3,本公开实施例提供一种认证方法。包括如下步骤:
S301:响应用户请求,获取用户令牌,所述请求内包含采用实施例一的方法生成的第二密码;
在一个具体的应用场景中,如政府部门政务系统的应用场景中,每当用户从服务器向政务系统发送查询请求时,首先需要获取用户令牌token。请求中包含的参数包含散列后得到的密码即采用实施例一的方法生成的第二密码。如图4所示。
S302:基于所述用户请求内的第二密码完成认证。
参见图5,基于所述用户请求内的第二密码完成认证,包括:
S501:获取所述请求内的第二密码;
当接收到用户请求时,识别出请求中的第二密码。
S502:验证所述第二密码是否正确;
将识别出的第二密码与系统保存的密码进行比对,从而验证请求中识别出的第二密码是否正确。
S503:如验证结果为正确,则返回用户令牌,完成认证。
如第二密码正确,则返回用户令牌,用户即可使用返回的用户令牌在系统中进行查询等操作。
实施例三:
参见图6,本公开实施例提供一种密码生成装置,包括:
密码散列模块601:用于对第一密码进行散列,得到散列结果;
拼接模块602:用于将盐值和所述散列结果进行拼接,得到拼接结果;
密码生成模块603:用于对所述拼接结果进行散列,得到第二密码。
可选的,盐值设置有效期,且有效期能自定义。
可选的,装置还包括:请求响应模块:用于响应用户请求,生成第一密码和盐值。
可选的,散列为:使用散列算法进行散列计算。
实施例四:
参见图7,本公开实施例提供一种认证装置,包括:
获取模块701:用于响应用户请求,获取用户令牌,所述请求内包含第一方面任一所述的第二密码;
认证模块702:用于基于所述请求内的第二密码完成认证。
参见图8,认证模块702,包括:
第二密码获取模块801:用于获取所述请求内的第二密码;
验证模块802:用于验证所述第二密码是否正确;
返回模块803:用于如验证结果为正确,则返回用户令牌,完成认证。
实施例五:
本公开实施例还提供一种电子设备,该电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有能被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行实施例一中的密码生成方法;
和/或
以使所述至少一个处理器能够执行实施例二中的认证方法。
根据本公开实施例的电子设备包括存储器和处理器。
该存储器用于存储非暂时性计算机可读指令。具体地,存储器可以包括一个或多个计算机程序产品,该计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。该易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。该非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。
该处理器可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元,并且可以控制电子设备中的其它组件以执行期望的功能。在本公开的一个实施例中,该处理器用于运行该存储器中存储的该计算机可读指令。
本领域技术人员应能理解,为了解决如何获得良好用户体验效果的技术问题,本实施例中也可以包括诸如通信总线、接口等公知的结构,这些公知的结构也应包含在本公开的保护范围之内。
有关本实施例的详细说明可以参考前述各实施例中的相应说明,在此不再赘述。
实施例六:
本公开实施例提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行实施例一中的密码生成方法;
和/或
用于使计算机执行实施例二中的认证方法。
根据本公开实施例的计算机可读存储介质,其上存储有非暂时性计算机可读指令。当该非暂时性计算机可读指令由处理器运行时,执行前述的本公开各实施例方法的全部或部分步骤。
上述计算机可读存储介质包括但不限于:光存储介质(例如:CD-ROM和DVD)、磁光存储介质(例如:MO)、磁存储介质(例如:磁带或移动硬盘)、具有内置的可重写非易失性存储器的媒体(例如:存储卡)和具有内置ROM的媒体(例如:ROM盒)。
有关本实施例的详细说明可以参考前述各实施例中的相应说明,在此不再赘述。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。

Claims (10)

1.一种密码生成方法,其特征在于,包括:
对第一密码进行散列,得到散列结果;
将盐值和所述散列结果进行拼接,得到拼接结果;
对所述拼接结果进行散列,得到第二密码。
2.根据权利要求1所述的密码生成方法,其特征在于,
所述盐值设置有效期,且所述有效期能自定义。
3.根据权利要求2所述的密码生成方法,其特征在于,
达到有效期,所述盐值自动刷新,刷新前的所述盐值不再能用。
4.根据权利要求1所述的密码生成方法,其特征在于,所述对第一密码进行散列,得到散列结果的步骤之前,还包括:
响应用户请求,生成第一密码和盐值。
5.根据权利要求1所述的密码生成方法,其特征在于,所述散列为:
使用散列算法进行散列计算。
6.一种认证方法,其特征在于,包括:
响应用户请求,获取用户令牌,所述请求内包含权利要求1至权利要求5任一所述的第二密码;
基于所述请求内的第二密码完成认证。
7.根据权利要求6所述的认证方法,其特征在于,所述基于所述请求内的第二密码完成认证,包括:
获取所述请求内的第二密码;
验证所述第二密码是否正确;
如验证结果为正确,则返回用户令牌,完成认证。
8.一种密码生成装置,其特征在于,包括:
密码散列模块:用于对第一密码进行散列,得到散列结果;
拼接模块:用于将盐值和所述散列结果进行拼接,得到拼接结果;
密码生成模块:用于对所述拼接结果进行散列,得到第二密码。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-5任一所述的密码生成方法;
和/或
以使所述至少一个处理器能够执行权利要求6-7任一所述的认证方法。
10.一种非暂态计算机可读存储介质,其特征在于,该非暂态计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行权利要求1-5任一所述的密码生成方法;
和/或
用于使计算机执行权利要求6-7任一所述的认证方法。
CN201911142620.8A 2019-11-20 2019-11-20 密码生成及认证方法、装置、电子设备及介质 Pending CN111181714A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911142620.8A CN111181714A (zh) 2019-11-20 2019-11-20 密码生成及认证方法、装置、电子设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911142620.8A CN111181714A (zh) 2019-11-20 2019-11-20 密码生成及认证方法、装置、电子设备及介质

Publications (1)

Publication Number Publication Date
CN111181714A true CN111181714A (zh) 2020-05-19

Family

ID=70653732

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911142620.8A Pending CN111181714A (zh) 2019-11-20 2019-11-20 密码生成及认证方法、装置、电子设备及介质

Country Status (1)

Country Link
CN (1) CN111181714A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111538983A (zh) * 2020-07-03 2020-08-14 杭州摸象大数据科技有限公司 用户密码生成方法、装置、计算机设备及存储介质
CN112187460A (zh) * 2020-10-27 2021-01-05 清创网御(合肥)科技有限公司 一种面向主从网络的根密钥隐藏对称加密算法
CN113726764A (zh) * 2021-08-27 2021-11-30 杭州溪塔科技有限公司 一种隐私数据传输方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080235772A1 (en) * 2007-03-23 2008-09-25 Sap Ag. Iterated password hash systems and methods for preserving password entropy
CN108462574A (zh) * 2018-02-12 2018-08-28 广东睿江云计算股份有限公司 一种轻量级密码加密方法和系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080235772A1 (en) * 2007-03-23 2008-09-25 Sap Ag. Iterated password hash systems and methods for preserving password entropy
CN108462574A (zh) * 2018-02-12 2018-08-28 广东睿江云计算股份有限公司 一种轻量级密码加密方法和系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111538983A (zh) * 2020-07-03 2020-08-14 杭州摸象大数据科技有限公司 用户密码生成方法、装置、计算机设备及存储介质
CN112187460A (zh) * 2020-10-27 2021-01-05 清创网御(合肥)科技有限公司 一种面向主从网络的根密钥隐藏对称加密算法
CN113726764A (zh) * 2021-08-27 2021-11-30 杭州溪塔科技有限公司 一种隐私数据传输方法及装置
CN113726764B (zh) * 2021-08-27 2023-03-24 杭州溪塔科技有限公司 一种隐私数据传输方法及装置

Similar Documents

Publication Publication Date Title
US11606352B2 (en) Time-based one time password (TOTP) for network authentication
US10574648B2 (en) Methods and systems for user authentication
JP6574168B2 (ja) 端末識別方法、ならびにマシン識別コードを登録する方法、システム及び装置
US10630488B2 (en) Method and apparatus for managing application identifier
CN111935094A (zh) 数据库访问方法、装置、系统及计算机可读存储介质
US9401911B2 (en) One-time password certificate renewal
US10331865B2 (en) Increased security using dynamic watermarking
US9749130B2 (en) Distributing keys for decrypting client data
WO2019095856A1 (zh) 一种网络身份认证方法、系统及其使用的用户代理设备
CN112671720B (zh) 一种云平台资源访问控制的令牌构造方法、装置及设备
WO2015143855A1 (zh) 一种对数据资源进行访问的方法、装置和系统
CN111181714A (zh) 密码生成及认证方法、装置、电子设备及介质
CN111444499B (zh) 用户身份认证方法及系统
US20140157368A1 (en) Software authentication
CN112000951A (zh) 一种访问方法、装置、系统、电子设备及存储介质
WO2016155220A1 (zh) 一种单点登录的方法、系统以及终端
CN112800392A (zh) 基于软证书的授权方法和装置、存储介质
Abraham et al. SSI Strong Authentication using a Mobile-phone based Identity Wallet Reaching a High Level of Assurance.
CN107276967B (zh) 一种分布式系统及其登录验证方法
CN107276966B (zh) 一种分布式系统的控制方法及登录系统
US20150333909A1 (en) Information processing system and information processing method
CN110971609A (zh) Drm客户端证书的防克隆方法、存储介质及电子设备
US11177958B2 (en) Protection of authentication tokens
US20160050218A1 (en) Anonymous Server Based User Settings Protection
JP6364957B2 (ja) 情報処理システム、情報処理方法、及びプログラム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200519