CN104135364A - 帐号加解密系统及方法 - Google Patents
帐号加解密系统及方法 Download PDFInfo
- Publication number
- CN104135364A CN104135364A CN201310157942.6A CN201310157942A CN104135364A CN 104135364 A CN104135364 A CN 104135364A CN 201310157942 A CN201310157942 A CN 201310157942A CN 104135364 A CN104135364 A CN 104135364A
- Authority
- CN
- China
- Prior art keywords
- account number
- account
- time
- private key
- message
- 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
Links
Abstract
一种帐号加解密方法,该方法包括:记录帐号第一次登录应用系统时的登录信息;根据帐号的第一次登录信息生成私钥,并同时生成一个与私钥对应的公钥;将私钥发送给客户端,使得客户端通过私钥对包含帐号的第一次登录信息及帐号的资源配置信息的签章进行加密;接收客户端发送过来的加密后的签章,并保存到数据库中;接收客户端传送过来的帐号及私钥;通过私钥找到对应的公钥,通过公钥对签章进行解密,帐号的资源配置信息;根据帐号的资源配置信息配置应用系统,使得用户根据帐号的资源配置信息使用该应用系统。本发明还提供一种帐号加解密系统。利用本发明可以对帐号进行加密,确保用户的帐号安全,保护用户的隐私。
Description
技术领域
本发明涉及一种帐号管理系统及方法,尤其是关于一种帐号加解密系统及方法。
背景技术
一般而言,用户登录应用系统(例如,考试系统等)需要输入帐号(用户名及密码),然而,帐号泄密的情况时有发生,一旦帐号泄露,可能会对用户造成重大的损失。
发明内容
鉴于以上内容,有必要提供一种帐号加解密系统,其可以对帐号进行加密,确保用户的帐号安全,保护用户的隐私。
鉴于以上内容,还有必要提供一种帐号加解密方法,其可以对帐号进行加密,确保用户的帐号安全,保护用户的隐私。
一种帐号加密系统,运行于服务器中,该系统包括:记录模块,用于记录一个账号在第一次登录应用系统时的登录信息,并将该账号的第一次登录信息保存到数据库中;生成模块,用于根据该账号的第一次登录信息生成私钥,并同时生成一个与私钥对应的公钥,将公钥保存于数据库中;发送模块,用于将私钥发送给客户端,使得客户端通过私钥对包含该账号的第一次登录信息及该账号的资源配置信息的签章进行加密;接收模块,用于接收客户端发送过来的加密后的签章,并保存到数据库中,完成对账号的加密。
一种帐号解密系统,运行于服务器中,该系统包括:接收模块,用于当用户登录应用系统时,接收客户端传送过来的帐号及私钥;解密模块,用于当所述帐号及私钥都正确时,通过私钥在数据库中找到对应的公钥,并通过公钥对签章进行解密,以获得签章中该帐号的第一次登录信息及该帐号的资源配置信息;配置模块,用于当签章中该帐号的第一次登录信息正确时,根据该帐号的资源配置信息配置应用系统,使得用户根据该帐号的资源配置信息使用该应用系统。
一种帐号加密方法,该方法包括:记录帐号第一次登录应用系统时的登录信息,并将帐号的第一次登录信息保存到数据库中;根据帐号的第一次登录信息生成私钥,并同时生成一个与私钥对应的公钥,将公钥保存于数据库中;将私钥发送给客户端,使得客户端通过私钥对包含帐号的第一次登录信息及帐号的资源配置信息的签章进行加密;接收客户端发送过来的加密后的签章,并保存到数据库中,完成对帐号的加密。
一种帐号解密方法,该方法包括:当用户下一次登录应用系统时,接收客户端传送过来的帐号及私钥;当帐号及私钥都正确时,通过私钥在数据库中找到对应的公钥,并通过公钥对签章进行解密,以获得签章中帐号的第一次登录信息及帐号的资源配置信息;当签章中帐号的第一次登录信息正确时,根据帐号的资源配置信息配置应用系统,使得用户根据帐号的资源配置信息使用该应用系统。
相较于现有技术,本发明提供的帐号加解密系统及方法,其可以对帐号进行加密,确保用户的帐号安全,保护用户的隐私。
附图说明
图1是本发明帐号加解密系统较佳实施例的应用环境图。
图2是本发明服务器较佳实施例的结构示意图。
图3是本发明帐号加密方法较佳实施例的流程图。
图4是本发明帐号解密方法较佳实施例的流程图。
主要元件符号说明
客户端 | 10 |
网络 | 20 |
服务器 | 30 |
帐号加解密系统 | 300 |
应用系统 | 301 |
数据库 | 40 |
记录模块 | 310 |
生成模块 | 320 |
发送模块 | 330 |
接收模块 | 340 |
判断模块 | 350 |
解密模块 | 360 |
配置模块 | 370 |
存储器 | 380 |
处理器 | 390 |
如下具体实施方式将结合上述附图进一步说明本发明。
具体实施方式
参阅图1所示,是本发明帐号加解密系统300较佳实施例的应用环境图。该帐号加解密系统300应用于服务器30中。该服务器30与一个或多个客户端10(图1中以一个为例进行说明)通过网络20进行通信连接。
所述网络20可以是互联网、局域网或者其它通讯网络。
所述服务器30安装有应用系统301,所述应用系统301与帐号加解密系统300连接,当用户通过帐号(例如,用户名及密码)第一次登录到所述应用系统301时,对帐号进行加密,及当用户通过加密后的帐号再次登录应用系统301时,对加密的帐号进行解密,使得用户能够登录并使用该应用系统301。在其它实施例中,所述帐号加解密系统300还可以成为应用系统301的一个子系统。所述应用系统301可以是一个虚拟机资源分配系统、考勤系统、考试系统及其它任意需要帐号登录的系统或软件。该服务器30可以是个人计算机、网络服务器,还可以是任意其它适用的计算机。
所述服务器30通过一个数据库连接与数据库40连接。其中,所述数据库连接可为一开放式数据库连接(Open Database Connectivity,ODBC),或Java数据库连接(Java Database Connectivity,JDBC)。
在此需说明的是,数据库40可独立于服务器30,也可位于服务器30内。所述数据库40可存于服务器30的硬盘或者闪存盘中。从系统安全性的角度考虑,本实施例中的数据库40独立于服务器30。
所述客户端10用于提供一个登录界面,便于用户输入帐号以登录到服务器30的应用系统301。该客户端10可以是个人计算机、笔记本电脑、手机、平板电脑以及其它任意能与服务器30连接的设备。
参阅图2所示,是本发明服务器30较佳实施例的结构示意图。该服务器30除了包括帐号加解密系统300,还包括通过数据线或信号线相连的存储器380和处理器390。该帐号加解密系统300包括记录模块310、生成模块320、发送模块330、接收模块340、判断模块350、解密模块360及配置模块370。模块310至370的程序化代码存储于存储器380中,处理器390执行这些程序化代码,实现帐号加解密系统300提供的上述功能。本发明所称的模块是完成一特定功能的计算机程序段,比程序更适合于描述软件在计算机中的执行过程,因此本发明以下对软件描述中都以模块描述。
所述记录模块310用于记录一个帐号第一次登录应用系统301时的登录信息,并将帐号的第一次登录信息保存到数据库40中。具体而言,用户通过客户端10的登录界面输入帐号,并将帐号发送给服务器30,服务器30在接收到该帐号时,验证该帐号是否正确,若该帐号正确,则记录该帐号登录时的第一次登录信息。所述帐号包括用户名及密码,所述帐号的第一次登录信息包括帐号的用户名、密码、登录时间及客户端10的IP地址等信息。
所述生成模块320用于根据帐号的第一次登录信息生成私钥,在本较佳实施例中,所述生成模块320通过信息摘要算法(Message-DigestAlgorithm5,MD5)将登录信息生成私钥,并同时生成一个与私钥对应的公钥。所述私钥中可以包括帐号的第一次登录信息中的全部信息,也可以包括帐号的第一次登录信息中的部分信息,在本较佳实施例中,所述私钥包括帐号的第一次登录信息中的部分信息,例如,帐号。所述生成的私钥是一个文本格式的文件。为了确保私钥的信息安全,用户可以在服务器30中定义所生成的私钥的后缀,使得开启所生成的私钥需要对应的软件,例如,定义所生成的私钥以PEM为后缀,若用户需要开启该PEM为后缀的私钥,需要对应的PEM软件才能开启。需要说明的是,所述服务器30会安装有所述对应的PEM软件,以便开启该PEM为后缀的私钥。所述生成模块320将公钥保存于数据库40中,所述公钥用于对私钥加密的签章进行解密。
所述发送模块330用于将私钥发送给客户端10,使得客户端10通过私钥对包含帐号的第一次登录信息及帐号的资源配置信息的签章进行加密。所述客户端10调用非对称式数位签章法,如RSA或ElGamal,将帐号的第一次登录信息及帐号的资源配置信息生成签章,并通过私钥对签章进行加密。所述帐号的资源配置信息可以是,但不限于,帐号使用应用系统301的权限、帐号使用应用系统301时的资源信息(例如,使用该应用系统301时CPU的核心数量、使用内存的容量、使用硬盘的容量、使用的操作系统及收费模式)等。
所述接收模块340用于接收客户端10发送过来的加密后的签章,并保存到数据库40中,完成对帐号的加密。
所述接收模块340还用于当用户下一次登录应用系统301时,接收客户端10传送过来的帐号及私钥。具体而言,用户通过客户端10的登录界面输入帐号,同时上传私钥,将帐号及私钥发送给服务器30。
所述判断模块350用于判断客户端10发送过来的账号及私钥是否正确。具体而言,所述判断模块350将发送过来的账号与数据库40中存储的账号进行比对,若一致,则表明客户端10发送过来的账号正确。所述判断模块350还调用安装在服务器30上对应的软件(例如,能够开启后缀为PEP的文件的软件),以开启该私钥,并获取该私钥中的信息,将获取的私钥中的信息与数据库40中保存的该账号的第一次登录信息进行比对,若私钥中的信息全部包含在数据库40中保存的该账号的第一次登录信息中,则表明私钥正确,若私钥中的信息没有包含或部分包含在数据库40中保存的该账号的第一次登录信息中,则表明私钥不正确。
所述解密模块360用于当账号及私钥都正确时,通过私钥在数据库40中找到对应的公钥,并通过公钥对签章进行解密,以获得签章中该账号的第一次登录信息及该账号的资源配置信息。
所述判断模块350还用于判断签章中该账号的第一次登录信息是否正确。具体而言,所述判断模块350将签章中该账号的第一次登录信息与数据库40中保存的登录信息进行比对,若一致,则表明签章中该账号的第一次登录信息正确,若不一致,则表明签章中该账号的第一次登录信息不正确。
所述配置模块370用于当签章中该账号的第一次登录信息正确时,根据该账号的资源配置信息配置应用系统301,使得用户根据账号的资源配置信息使用该应用系统301。例如,假设账号的资源配置信息是访客权限、使用该应用系统301时CPU的核心数量为四个、使用内存的容量为2G、使用硬盘的容量为300G、使用的操作系统为Linux操作系统、收费模式为以小时计费(如每小时300美元),则所述配置模块370以上述资源配置信息对应用系统301进行配置,以供用户使用该应用系统301。
如图3所示,是本发明帐号加密方法较佳实施例的流程图。
步骤S10,记录模块310记录一个帐号登录应用系统301时的登录信息,并将帐号的第一次登录信息保存到数据库40中。具体而言,用户通过客户端10的登录界面输入帐号,并将帐号发送给服务器30,服务器30在接收到该帐号时,验证该帐号是否正确,若该帐号正确,则记录该帐号登录时的第一次登录信息。所述帐号包括用户名及密码,所述帐号的第一次登录信息包括帐号的用户名、密码、登录时间及客户端10的IP地址等信息。
步骤S20,生成模块320根据登录信息生成私钥,在本较佳实施例中,所述生成模块320通过信息摘要算法(Message-Digest Algorithm5,MD5)将登录信息生成私钥,并同时生成一个与私钥对应的公钥。所述私钥中可以包括登录信息中的全部信息,也可以包括登录信息中的部分信息,在本较佳实施例中,所述私钥包括登录信息中的部分信息,例如,帐号。所述生成的私钥是一个文本格式的文件。为了确保私钥的信息安全,用户可以在服务器30中定义所生成的私钥的后缀,使得开启所生成的私钥需要对应的软件,例如,定义所生成的私钥以PEM(PrivacyEnhanced Mail)为后缀,若用户需要开启该PEM为后缀的私钥,需要对应的PEM软件才能开启。需要说明的是,所述服务器30会安装有所述对应的PEM软件,以便开启该PEM为后缀的私钥。所述生成模块320将公钥保存于数据库40中,所述公钥用于对私钥加密的签章进行解密。
步骤S30,发送模块330将私钥发送给客户端10,使得客户端10通过私钥对包含帐号的第一次登录信息及帐号的资源配置信息的签章进行加密。所述客户端10调用非对称式数位签章法,如RSA或ElGamal,将帐号的第一次登录信息及帐号的资源配置信息生成签章,并通过私钥对签章进行加密。所述帐号的资源配置信息可以是,但不限于,帐号使用应用系统301的权限、帐号使用应用系统301时的资源信息(例如,使用该应用系统301时CPU的核心数量、使用内存的容量、使用硬盘的容量、使用的操作系统及收费模式)等。
步骤S40,接收模块340接收客户端10发送过来的签章,并保存到数据库40中,完成对帐号的加密。
如图4所示,是本发明帐号解密方法较佳实施例的流程图。
步骤S50,当用户下一次登录应用系统301时,接收模块340接收客户端10传送过来的帐号及私钥。具体而言,用户通过客户端10的登录界面输入帐号,并同时上传私钥,并将帐号及私钥发送给服务器30。
步骤S60,所述判断模块350判断客户端10发送过来的账号及私钥是否正确。具体而言,所述判断模块350将发送过来的账号与数据库40中存储的账号进行比对,若一致,则表明客户端10发送过来的账号正确。所述判断模块350还调用安装在服务器30上对应的软件(例如,能够开启后缀为PEP的文件的软件),以开启该私钥,并获取该私钥中的信息,将获取的私钥中的信息与数据库40中保存的该账号的第一次登录信息进行比对,若私钥中的信息全部包含在数据库40中保存的该账号的第一次登录信息中,则表明私钥正确,若私钥中的信息没有包含或部分包含在数据库40中保存的该账号的第一次登录信息中,则表明私钥不正确。当帐号及私钥都正确时,流程进入步骤S70,否则,若帐号或私钥有一项不正确,直接结束流程。
步骤S70,解密模块360通过私钥在数据库40中找到对应的公钥,并通过公钥对签章进行解密,以获得签章中该账号的第一次登录信息及该账号的资源配置信息。
步骤S80,判断模块350判断签章中该帐号的第一次登录信息是否正确。具体而言,所述判断模块350将签章中该帐号的第一次登录信息与数据库40中保存的该帐号的第一次登录信息进行比对,若一致,则表明签章中该帐号的第一次登录信息正确,流程进入步骤S90,若不一致,则表明签章中该帐号的第一次登录信息不正确,直接结束流程。
步骤S90,配置模块370根据该帐号的资源配置信息配置应用系统301,使得用户根据帐号的资源配置信息使用该应用系统301。例如,假设帐号的资源配置信息是访客权限、使用该应用系统301时CPU的核心数量为四个、使用内存的容量为2G、使用硬盘的容量为300G、使用的操作系统为Linux操作系统、收费模式为以小时计费(如每小时300美元),则所述配置模块370以上述资源配置信息对应用系统301进行配置,以供用户使用该应用系统301。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照以上较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
Claims (12)
1.一种帐号加密系统,运行于服务器中,其特征在于,该系统包括:
记录模块,用于记录一个账号在第一次登录应用系统时的登录信息,并将该账号的第一次登录信息保存到数据库中;
生成模块,用于根据该账号的第一次登录信息生成私钥,并同时生成一个与私钥对应的公钥,将公钥保存于数据库中;
发送模块,用于将私钥发送给客户端,使得客户端通过私钥对包含该账号的第一次登录信息及该账号的资源配置信息的签章进行加密;
接收模块,用于接收客户端发送过来的加密后的签章,并保存到数据库中,完成对账号的加密。
2.如权利要求1所述的帐号加密系统,其特征在于,所述帐号包括用户名及密码,所述帐号的第一次登录信息包括帐号的用户名、密码、登录时间及客户端的IP地址。
3.如权利要求1所述的帐号加密系统,其特征在于,所述生成模块通过信息摘要算法将帐号的第一次登录信息生成私钥,并同时生成与该私钥对应的公钥。
4.如权利要求1所述的帐号加密系统,其特征在于,所述私钥包括帐号的第一次登录信息中的全部信息或帐号的第一次登录信息中的部分信息。
5.如权利要求1所述的帐号加密系统,其特征在于,所述帐号的资源配置信息包括帐号使用应用系统的权限、帐号使用该应用系统时CPU的核心数量、使用内存的容量、使用硬盘的容量、使用的操作系统及收费模式。
6.一种帐号解密系统,运行于服务器中,其特征在于,该系统包括:
接收模块,用于当用户登录应用系统时,接收客户端传送过来的帐号及私钥;
解密模块,用于当所述帐号及私钥都正确时,通过私钥在数据库中找到对应的公钥,并通过公钥对签章进行解密,以获得签章中该帐号的第一次登录信息及该帐号的资源配置信息;及
配置模块,用于当签章中该帐号的第一次登录信息正确时,根据该帐号的资源配置信息配置应用系统,使得用户根据该帐号的资源配置信息使用该应用系统。
7.一种帐号加密方法,其特征在于,该方法包括:
记录帐号第一次登录应用系统时的登录信息,并将帐号的第一次登录信息保存到数据库中;
根据帐号的第一次登录信息生成私钥,并同时生成一个与私钥对应的公钥,将公钥保存于数据库中;
将私钥发送给客户端,使得客户端通过私钥对包含帐号的第一次登录信息及帐号的资源配置信息的签章进行加密;及
接收客户端发送过来的加密后的签章,并保存到数据库中,完成对帐号的加密。
8.如权利要求7所述的帐号加密方法,其特征在于,所述帐号包括用户名及密码,所述帐号的第一次登录信息包括帐号的用户名、密码、登录时间及客户端的IP地址。
9.如权利要求7所述的帐号加密方法,其特征在于,所述私钥及公钥通过信息摘要算法生成。
10.如权利要求7所述的帐号加密方法,其特征在于,所述私钥包括帐号的第一次登录信息中的全部信息或帐号的第一次登录信息中的部分信息。
11.如权利要求7所述的帐号加密方法,其特征在于,所述帐号的资源配置信息包括帐号使用应用系统的权限、帐号使用该应用系统时CPU的核心数量、使用内存的容量、使用硬盘的容量、使用的操作系统及收费模式。
12.一种帐号解密方法,其特征在于,该方法包括:
当用户下一次登录应用系统时,接收客户端传送过来的帐号及私钥;
当帐号及私钥都正确时,通过私钥在数据库中找到对应的公钥,并通过公钥对签章进行解密,以获得签章中帐号的第一次登录信息及帐号的资源配置信息;及
当签章中帐号的第一次登录信息正确时,根据帐号的资源配置信息配置应用系统,使得用户根据帐号的资源配置信息使用该应用系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310157942.6A CN104135364A (zh) | 2013-04-30 | 2013-04-30 | 帐号加解密系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310157942.6A CN104135364A (zh) | 2013-04-30 | 2013-04-30 | 帐号加解密系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104135364A true CN104135364A (zh) | 2014-11-05 |
Family
ID=51807899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310157942.6A Pending CN104135364A (zh) | 2013-04-30 | 2013-04-30 | 帐号加解密系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104135364A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108683633A (zh) * | 2018-04-10 | 2018-10-19 | 新华三技术有限公司成都分公司 | 访问控制方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101309278A (zh) * | 2008-06-27 | 2008-11-19 | 腾讯科技(深圳)有限公司 | 一种在客户端保存加密数据的方法及系统 |
US20110296172A1 (en) * | 2010-05-28 | 2011-12-01 | Christina Fu | Server-side key generation for non-token clients |
CN103067339A (zh) * | 2011-10-20 | 2013-04-24 | 深圳市快播科技有限公司 | 一种客户端网页游戏多帐号安全登录方法及系统 |
-
2013
- 2013-04-30 CN CN201310157942.6A patent/CN104135364A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101309278A (zh) * | 2008-06-27 | 2008-11-19 | 腾讯科技(深圳)有限公司 | 一种在客户端保存加密数据的方法及系统 |
US20110296172A1 (en) * | 2010-05-28 | 2011-12-01 | Christina Fu | Server-side key generation for non-token clients |
CN103067339A (zh) * | 2011-10-20 | 2013-04-24 | 深圳市快播科技有限公司 | 一种客户端网页游戏多帐号安全登录方法及系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108683633A (zh) * | 2018-04-10 | 2018-10-19 | 新华三技术有限公司成都分公司 | 访问控制方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11456864B2 (en) | Information storage method, device, and computer-readable storage medium | |
CN106656476B (zh) | 一种密码保护方法、装置及计算机可读存储介质 | |
US9455830B2 (en) | Method for securing credentials in a remote repository | |
US9219722B2 (en) | Unclonable ID based chip-to-chip communication | |
US11546321B2 (en) | Non-custodial tool for building decentralized computer applications | |
CN109587101B (zh) | 一种数字证书管理方法、装置及存储介质 | |
US20120254622A1 (en) | Secure Access to Electronic Devices | |
US20180091487A1 (en) | Electronic device, server and communication system for securely transmitting information | |
WO2015003503A1 (zh) | 一种提高信息安全性的方法、终端设备及网络设备 | |
US10063655B2 (en) | Information processing method, trusted server, and cloud server | |
EP3720042B1 (en) | Method and device for determining trust state of tpm, and storage medium | |
KR20130031435A (ko) | 휴대용 단말의 암호화 키 생성 및 관리 방법 및 그 장치 | |
CA2813765C (en) | A method for securing credentials in a remote repository | |
KR101680536B1 (ko) | 기업용 모바일 업무데이터 보안 서비스 방법 및 그 시스템 | |
US11032708B2 (en) | Securing public WLAN hotspot network access | |
CN104135364A (zh) | 帐号加解密系统及方法 | |
CN106598773B (zh) | 可信系统还原装置 | |
KR20130041033A (ko) | 휴대용 단말의 암호화 키 생성 및 관리 방법 및 그 장치 | |
CN113783847B (zh) | 消息交互方法、装置、计算机设备和存储介质 | |
US20220311616A1 (en) | Connection resilient multi-factor authentication | |
CN112187462B (zh) | 数据处理方法、装置、电子设备及计算机可读介质 | |
US20240089098A1 (en) | Decryption key generation and recovery | |
Wu et al. | Secure key management of mobile agent system using tpm-based technology on trusted computing platform | |
CN117879819A (zh) | 密钥管理方法、装置、存储介质、设备及算力服务系统 | |
CN115065460A (zh) | 供电控制方法及装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20141105 |
|
WD01 | Invention patent application deemed withdrawn after publication |