密码表管理
个人密码管理表格

竭诚为您提供优质文档/双击可除个人密码管理表格篇一:工作资源站统计账号密码表格模版篇二:密码表管理密码表管理系统1设计目的、要求(1)可以存储用户名及密码等密码表信息(2)采用一种加密算法将密码表信息加密(3)可以添加、删除、修改已知密码表中的信息(4)可以检索密码信息2设计原理本程序采用维吉尼亚(vigenere)密码体制对用户名和密码等密码表信息进行加密。
3采用软件、设备microsoftVisualstudio20xx4设计内容1、vigenerecipher的加密规则:1)找到一个关键字作为密钥(本程序使用密码为关键字);2)根据vigeneretable找出对应的密文。
2、vigenerecipher的加密原理:1)v(个人密码管理表格)igenere代换表:abcdeFghijklmnopqRstuVwxyzbcdeFghijklmnopqRstuVwxyzacdeFghijklmnopqRstuVwxyzabdeFghijklmnopqRstuVwxyzabceFghijklmnopqRstuVwxyzabcdFghijklmnopqRstuVwxyzabcdeghijklmnopqRstuVwxyzabcdeFhijklmnopqRstuVwxyzabcdeFgijklmnopqRstuVwxyzabcdeFghjklmnopqRstuVwxyzabcdeFghiklmnopqRstuVwxyzabcdeFghijlmnopqRstuVwxyzabcdeFghijkmnopqRstuVwxyzabcdeFghijklnopqRstuVwxyzabcdeFghijklmopqRstuVwxyzabcdeFghijklmnpqRstuVwxyzabcdeFghijklmnoqRstuVwxyzabcdeFghijklmnopRstuVwxyzabcdeFghijklmnopqstuVwxyzabcdeFghijklmnopqRtuVwxyzabcdeFghijklmnopqRsuVwxyzabcdeFghijklmnopqRstVwxyzabcdeFghijklmnopqRstuwxyzabcdeFghijklmnopqRstuVxyzabcdeFghijklmnopqRstuVwyzabcdeFghijklmnopqRstuVwxzabcdeFghijklmnopqRstuVwxy2)加密过程很简单,就是给定密钥字母x和明文字母y,密文字母是位于x行和y列的那个字母。
常用密码表

【基本字母表】┃01┃02┃03┃04┃05┃06┃07┃08┃09┃10┃11┃12┃13┃┠--╂--╂--╂--╂--╂--╂--╂--╂--╂--╂--╂--╂--┨┃A ┃B ┃C ┃D ┃E ┃F ┃G ┃H ┃I ┃J ┃K ┃L ┃M ┃======================================================┃14┃15┃16┃17┃18┃19┃20┃21┃22┃23┃24┃25┃26┃┠--╂--╂--╂--╂--╂--╂--╂--╂--╂--╂--╂--╂--┨┃N ┃O ┃P ┃Q ┃R ┃S ┃T ┃U ┃V ┃W ┃X ┃Y ┃Z ┃================〖QWE加密表〗┃a┃b┃c┃d┃e┃f┃g┃h┃i┃j┃k┃l┃m┃n┃o┃p┃q┃r┃s┃t┃u┃v┃w┃x┃y┃z ┃┠-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-┨┃Q┃W┃E┃R┃T┃Y┃U┃I┃O┃P┃A┃S┃D┃F┃G┃H┃J┃K┃L┃Z┃X┃C┃V┃B┃N┃M┃--------其实QWE加密可以表示成这种形式;--------(a,q,j,p,h,i,o,g,u,x,b,w,v,c,e,t,z,m,d,r,k)(f,y,n)(l,s)--------至于它是什么意思,自己去琢磨.--------至于这种形式比表形式有什么优点,自己去琢磨.【QWE解密表】┃A┃B┃C┃D┃E┃F┃G┃H┃I┃J┃K┃L┃M┃N┃O┃P┃Q┃R┃S┃T┃U┃V┃W ┃X┃Y┃Z┃┠-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-┨┃k┃x┃v┃m┃c┃n┃o┃p┃h┃q┃r┃s┃z┃y┃i┃j┃a┃d┃l┃e┃g┃w┃b┃u┃f┃t ┃================【电脑键盘表】┏!┯@┯#┯$┯%┯^┯&┯*┯(┯)┯_┯+┯|┓┃1│2│3│4│5│6│7│8│9│0│-│=│\┃┃│ │ │ │ │ │ │ │ │ │ │ │ ┃1┃Q│W│E│R│T│Y│U│I│O│P│[│]│ ┃7/8/9 -- Tab┃│ │ │ │ │ │ │ │ │ │ │ │ ┃2┃A│S│D│F│G│H│J│K│L│;│'│ │ ┃4/5/6 -- Caps Lock┃│ │ │ │ │ │ │ │ │ │ │ │ ┃3┃Z│X│C│V│B│N│M│,│.│/│ │ │ ┃1/2/3 -- Shift┗-┷-┷-┷-┷-┷-┷-┷-┷-┷-┷-┷-┷-┛0================【手机键盘表】┏1┯2 ┯3 ┯4 ┯5 ┯6 ┯7 ┯8 ┯9 ┯0┓1┃│ A │ D │ G │ J │ M │ P │ T │ W │ ┃2┃│ B │ E │ H │ K │ N │ Q │ U │ X │ ┃3┃│ C │ F │ I │ L │ O │ R │ V │ Y │ ┃4┗-┷---┷---┷---┷---┷---┷-S-┷---┷-Z-┷-┛================【埃特巴什加密/解密表】┃a┃b┃c┃d┃e┃f┃g┃h┃i┃j┃k┃l┃m┃n┃o┃p┃q┃r┃s┃t┃u┃v┃w┃x┃y┃z ┃┠-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-┨┃Z┃Y┃X┃W┃V┃U┃T┃S┃R┃Q┃P┃O┃N┃M┃L┃K┃J┃I┃H┃G┃F┃E┃D ┃C┃B┃A┃================〖反序QWE加密表〗┃a┃b┃c┃d┃e┃f┃g┃h┃i┃j┃k┃l┃m┃n┃o┃p┃q┃r┃s┃t┃u┃v┃w┃x┃y┃z ┃┠-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-┨┃M┃N┃B┃V┃C┃X┃Z┃L┃K┃J┃H┃G┃F┃D┃S┃A┃P┃O┃I┃U┃Y┃T┃R┃E┃W┃Q┃--------(a,m,f,x,e,c,b,n,d,v,t,u,y,w,r,o,s,i,k,h,l,g,z,q,p)(j)【反序QWE解密表】┃A┃B┃C┃D┃E┃F┃G┃H┃I┃J┃K┃L┃M┃N┃O┃P┃Q┃R┃S┃T┃U┃V┃W ┃X┃Y┃Z┃┠-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-╂-┨┃p┃c┃e┃n┃x┃m┃l┃k┃s┃j┃i┃h┃a┃b┃r┃q┃z┃w┃o┃v┃t┃d┃y┃f┃u┃g ┃摩尔斯电码字母字母编码字母编码A *-B -***C -*-*D -**E *F **-*G --*H ****I **J *---K -*-L *-**M --N -*O ---P *--*Q --*-R *-*S ***T -U **-V ***-W *--X -**-Y -*--Z --**数字0 -----1 *----2 **---3 ***--4 ****-5 *****6 -****7 --***8 ---**9 ----*常用标点句号*-*-*-逗号--**--问号**--**长破折号-***-连字符-****-分数线-**-*特殊符号AR *-*-* 停止(消息结束)AS *-*** 等待K -*- 邀请发射信号(一般跟随AR,表示“该你了”)SK ***-*- 终止(联络结束)BT -***- 分隔符***-* (我将重新发送最后一个单词)** ** (同样)******** 错误非英语字符的一些扩展? *--*-? *-*-à *--*-é **-**ch ----? ---*ü **--" *-**-*! **--*常用缩写AA All after (used after question mark to request a repetition) AB All before (similarly)ARRL American Radio Relay LeagueABT AboutADS AddressAGN AgainANT AntennaBN All betweenBUG Semiautomatic keyC YesCBA Callbook addressCFM ConfirmCLG CallingCQ Calling any stationCUL See you laterCUZ BecauseCW Continuous waveCX ConditionsDE FromDX Distance (sometimes refers to long distance contact)ES AndFB Fine business (Analogous to "OK")FCC Federal Communications CommissionFER ForFREQ FrequencyGA Good afternoon or Go ahead (depending on context) GE Good eveningGM Good morningGND Ground (ground potential)GUD GoodHI LaughterHR HereHV HaveLID Poor operatorMILS MilliamperesNIL NothingNR NumberOB Old boyOC Old chapOM Old man (any male amateur radio operator is an OM) OO Official ObserverOP OperatorOT Old timerOTC Old timers clubOOTC Old old timers clubPSE PleasePWR PowerQCWA Quarter Century Wireless AssociationR I acknowledge or decimal point (depending on context) RCVR ReceiverRPT Repeat or report (depending on context)RST Signal report format (Readability-Signal Strength-Tone) RTTY RadioteletypeRX ReceiveSAE Self addressed envelopeSASE Self addressed, stamped envelopeSED SaidSEZ SaysSIG SignalSIGS SignalsSKED ScheduleSN SoonSOS international distress callSRI SorrySTN StationTEMP TemperatureTMW TomorrowTNX ThanksTU Thank youTX TransmitU YouUR Your or you're (depending on context)URS YoursVY VeryWDS WordsWKD WorkedWL WillWUD WouldWX WeatherXMTR TransmitterXYL WifeYL Young lady (used of any female)73 Best regards88 Love and kisses恺撒密码“恺撒密码”据传是古罗马恺撒大帝用来保护重要军情的加密系统。
个人密码管理表格

竭诚为您提供优质文档/双击可除个人密码管理表格篇一:工作资源站统计账号密码表格模版篇二:密码表管理密码表管理系统1设计目的、要求(1)可以存储用户名及密码等密码表信息(2)采用一种加密算法将密码表信息加密(3)可以添加、删除、修改已知密码表中的信息(4)可以检索密码信息2设计原理本程序采用维吉尼亚(vigenere)密码体制对用户名和密码等密码表信息进行加密。
3采用软件、设备microsoftVisualstudio20xx4设计内容1、vigenerecipher的加密规则:1)找到一个关键字作为密钥(本程序使用密码为关键字);2)根据vigeneretable找出对应的密文。
2、vigenerecipher的加密原理:1)v(个人密码管理表格)igenere代换表:abcdeFghijklmnopqRstuVwxyzbcdeFghijklmnopqRstuVwxyzacdeFghijklmnopqRstuVwxyzabdeFghijklmnopqRstuVwxyzabceFghijklmnopqRstuVwxyzabcdFghijklmnopqRstuVwxyzabcdeghijklmnopqRstuVwxyzabcdeFhijklmnopqRstuVwxyzabcdeFgijklmnopqRstuVwxyzabcdeFghjklmnopqRstuVwxyzabcdeFghiklmnopqRstuVwxyzabcdeFghijlmnopqRstuVwxyzabcdeFghijkmnopqRstuVwxyzabcdeFghijklnopqRstuVwxyzabcdeFghijklmopqRstuVwxyzabcdeFghijklmnpqRstuVwxyzabcdeFghijklmnoqRstuVwxyzabcdeFghijklmnopRstuVwxyzabcdeFghijklmnopqstuVwxyzabcdeFghijklmnopqRtuVwxyzabcdeFghijklmnopqRsuVwxyzabcdeFghijklmnopqRstVwxyzabcdeFghijklmnopqRstuwxyzabcdeFghijklmnopqRstuVxyzabcdeFghijklmnopqRstuVwyzabcdeFghijklmnopqRstuVwxzabcdeFghijklmnopqRstuVwxy2)加密过程很简单,就是给定密钥字母x和明文字母y,密文字母是位于x行和y列的那个字母。
专用计算机的管理制度

专用计算机的管理制度一、使用者必须遵守《中华人民共和国计算机信息系统安全保护条例》。
二、计算机资源由XX处统一归口管理,登记、备案,并建立准确的资产帐。
各单位应建立《设备履历本》,用以记录设备的原始资料、运行过程中的维修、升级和变更等情况,对计算机硬件资源要加贴标签及编号标识,设备的随机资料(含磁介质、光盘等)及保修(单)卡由XX处保管。
三、配备有专用计算机设备的单位和部门都要指定一名计算机管理员对机器设备进行管理,其对专用计算机资源负有管理责任,使用人在使用专用计算机时,须向该计算机管理员进行申请登记手续,计算机管理员不得随意将专用计算机交予他人使用.四、计算机机房要有完善的安防措施,专用计算机在系统进入、资源共享、屏幕保护等方面必须采取必要的安全保密措施.五、任何人员不得将专用计算机带出办公场所,如因工作需要必需带出的,需履行相应的审批和登记手续。
六、严禁制造和传播计算机病毒,未经许可,任何私人的光盘、软盘、移动存储设备不得在专用计算机设备上使用;专用计算机必需安装防病毒软件并定期升级.七、专用计算机必须采取有效的防盗、防火措施,并做好使用记录。
一、禁止使用专用计算机上国际互联网.二、禁止在专用计算机上使用光盘、软盘以及移动存储设备,严禁在计算机上拷贝安装与工作无关的文件及软件.三、禁止在非专用计算机系统上处理专用信息。
四、各单位的专用计算机资源原则上只能用于该单位的专用工作,禁止利用专用计算机资源从事与该专用工作无关的活动。
五、外单位借用我公司各单位的专用计算机资源(包括借出资源和来公司使用资源)需填写审批单并经单位负责人批准,该计算机的保管人或使用人不得擅自外借。
六、使用人将专用便携式计算机外出携带使用时,须填写《携带便携式计算机外出登记表》,并由单位计算机管理员审批。
返回后,计算机管理员需对计算机进行检查,如实填写计算机情况,七、专用计算机只能由专人使用,未经授权,任何人员不得随意开启或使用专用计算机。
注册表 密码策略

注册表中的密码策略是用来管理用户密码的复杂性、安全性和使用规则的设置。
在Windows 操作系统中,注册表中有以下与密码策略相关的项:1. 密码长度要求(MinimumPasswordLength):指定密码的最小长度。
默认值为7。
2. 密码复杂性要求(PasswordComplexity):指定密码是否需要包含数字、大小写字母和特殊字符等复杂性要求。
默认值为启用(1),即密码必须符合复杂性要求。
3. 密码历史(PasswordHistorySize):指定在密码历史中要保留的旧密码数量。
每次更改密码时,系统会将新密码添加到历史记录中,以便确保每个新密码都是独特的。
默认值为24。
4. 密码最大年龄(MaximumPasswordAge):指定允许的密码使用时间的最大期限。
过了这个期限,用户将被要求更改密码。
默认情况下,密码最大年龄是42 天。
5. 密码最短使用时间(MinimumPasswordAge):指定在设置新密码后要求用户使用该密码的最短时间,即密码的最短使用期。
默认情况下,最短使用时间是0(用户可以立即更改密码)。
6. 密码必须更改(ForceChangePassword):指定在用户首次登录时是否要求更改初始密码。
默认值为禁用(0)。
这些密码策略设置可以通过修改注册表中相应的键值来进行调整。
在注册表中,它们通常位于以下路径中:-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Network -HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System需要注意的是,在修改注册表之前,请先备份注册表并小心操作,以避免意外的问题。
另外,某些密码策略可能受到组策略和域策略的影响,因此也可以通过组策略编辑器进行更改。
办公密码管理制度

第一章总则第一条目旳第二条为规范我司办公密码旳使用并保证其安全, 特制定本制度。
第三条合用范畴合用于全体员工。
第四条办公密码旳分类我司办公密码涉及如下五种类型:第二章办公密码管理细则第五条办公密码保管/借用第六条办公密码波及公司机密文献及资料, 各部门办公密码使用人妥善管理自己使用旳办公设备/系统密码, 保管人员直接上级主管/经理必须随时理解所管辖员工保管密码旳更新状况。
第七条若其别人员因工作需要使用到自己保管旳密码, 须经部门主管批准后才可将密码提供别人使用。
在有关人员使用密码后旳一种工作日内, 须及时对密码进行修改, 并及时填写OA流《办公密码变更登记表》申报更改。
第八条电脑开机密码设立第九条办公密码变更申报1、需使用OA流《办公密码变更登记表》申报变更旳状况涉及如下七种: ①更改密码、②更改使用人、③更换密码并更改使用人、④增长备案人、⑤增长使用人、⑥新增密码、⑦其他。
第十条申报负责人:一般状况下, 办公密码变更OA申报由密码保管人(虽然用人)负责。
如因人员离职/调动/休长假需变更密码, 由员工直接上级进行OA申报。
办公室主任负责进行店面办公密码变更OA申报。
第十一条申报时间: 密码产生变更后一种工作日内。
第十二条办公密码登记备案1、密码备案人(一般为部门主管、经理)根据《各岗位人员密码设立对照表》(附件四)旳规定, 负责怪案管辖员工办公密码, 及时更新《办公密码设立登记表》。
一般状况下, 行政经理/部门经理需备案管辖区域/部门所有人员旳密码;部门主管只备案本科室各人员旳密码。
2、公司各员工如因工作需要需备案其他部门密码, 应提前通过公Q向有关部门经理申请, 通过批准后才可进行密码旳备案。
3、密码备案人接受密码保管人因密码变更而进行旳OA流《办公密码变更登记表》申报时, 须及时向有关人员核算拟定密码变更状况, 并更新登记《办公密码设立登记表》。
4、行政管理科负责存档备案各区域/部门《办公密码设立登记表》。
密码机管理配置步骤及说明_中文

4.1 GK
产生主密钥成份卡 1(脱机下使用)
脱机>GK
LMK 成份集 [1-9]: 1 输入秘密值 A: **************** 输入秘密值 B: **************** 输入秘密值 C: **************** 输入日期时间(yymmddHH): 09022716 输入授权口令: 插入已格式化好的空白 IC 卡,并输入密码: ****** 正在保存主密钥成份... 主密钥成份已正确保存 ... 主密钥成份校验值: 7543 01FA BEBD 4A0F
按照 yymmddHH 格式正确输入,例如:09050112;
授权口令
为授权口令,如 CS 配置中设置了 IC 方式授权,则此项无效不需输入;
产生主密钥成份卡 2
步骤同上,LMK 成份集 项输入 2; 产生主密钥成份卡 3
步骤同上,LMK 成份集 项输入 3;
每张成份卡建议重复操作两次,比对校验值是否一致,一致则说明秘密值的输入正确,成份 卡与纸版 LMK 管理表内容一致有效。
本地主密钥奇偶错!
脱机>
各选项说明:
密码机安全参数属性解析
缺省
个人标识码(PIN)长度
明文个人标识码长度,4~12 个字符
6
回显(oN/oFf)
配置回显属性,管理终端上输入口令或秘密数据时是否回显
F
Atalla ZMK 变 种 支 持
是否支持 Atalla ZMK 变种;一般设置为 Off。
F
(oN/oFf)
按回车键,终端上显示“联机>”,表明成功连接上,此后可对密码机进行管理操作,; 密码机启动后默认为联机状态,若后面的管理操作中被提示“命令不允许执行”,则需 将密码机置入脱机状态:密码机后面板有一脱机开关,插入脱机开关钥匙转动一下即可;
密码机管理配置步骤及说明_中文

允许终端 PIN 加密(Y/N)
N
即 BK 指令 - 使用 TPK 加密明文 PIN
配置是否禁止检查十进制转换表
在 IBM 方式 PIN 的产生和转换校验运算中,
禁 止 检 查 十 进 制 转 换 表 ’Y’,不检查十进制转换表的正确性;
N
(Y/N)
’N’,检查转换表的正确性-包含 8 个不同的数字,每数字出现
按回车键,终端上显示“联机>”,表明成功连接上,此后可对密码机进行管理操作,; 密码机启动后默认为联机状态,若后面的管理操作中被提示“命令不允许执行”,则需 将密码机置入脱机状态:密码机后面板有一脱机开关,插入脱机开关钥匙转动一下即可;
2. FC
SJL22 金融数据密码机主密钥成份保存、密码机授权及密钥备份等可由智能 CPU 卡管理。厂商提供的是空白智能卡,每张卡片的用途可由用户自行设置管 理。使用前必须对智能卡进行格式化。
’Y’,允许标识为 X/Y 的密钥导入进行运算;
Y
入(Y/N)
’N’,不允许标识为 X/Y 的密钥导入应用;
配置是否允许 ANSI X9.17 方式导出
允许 ANSI X9.17 方式导
’Y’,允许合成输出标识为 X/Y 的密钥;
Y
出(Y/N)
’N’,不允许合成输出标识为 X/Y 的密钥;
配置是否允许终端 PIN 加密命令的执行
用 户 存 储 区 密 钥 长 度 用户存储区密钥长度,单长度 S/双长度 D/三长度 T
S
(S/D/T)
此部分密钥以’Knnn’和’knnnn’索引模式进行访问,密码机关
4
北京江南歌盟科技有限公司
BEIJING JIANGNAN GEMEN TECHNOLOGY CO., LTD.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
密码表管理系统1设计目的、要求(1) 可以存储用户名及密码等密码表信息(2) 采用一种加密算法将密码表信息加密(3) 可以添加、删除、修改已知密码表中的信息(4) 可以检索密码信息2设计原理本程序采用维吉尼亚(vigenere)密码体制对用户名和密码等密码表信息进行加密。
3采用软件、设备Microsoft Visual Studio 20104设计内容1、vigenere cipher 的加密规则:1)找到一个关键字作为密钥(本程序使用密码为关键字);2)根据vigenere table 找出对应的密文。
2、vigenere cipher 的加密原理:1)vigenere 代换表:ABCDEFGHIJKLMNOPQRSTUVWXYZBCDEFGHIJKLMNOPQRSTUVWXYZACDEFGHIJKLMNOPQRSTUVWXYZABDEFGHIJKLMNOPQRSTUVWXYZABCEFGHIJKLMNOPQRSTUVWXYZABCDFGHIJKLMNOPQRSTUVWXYZABCDEGHIJKLMNOPQRSTUVWXYZABCDEFHIJKLMNOPQRSTUVWXYZABCDEFGIJKLMNOPQRSTUVWXYZABCDEFGHJKLMNOPQRSTUVWXYZABCDEFGHIKLMNOPQRSTUVWXYZABCDEFGHIJLMNOPQRSTUVWXYZABCDEFGHIJKMNOPQRSTUVWXYZABCDEFGHIJKLNOPQRSTUVWXYZABCDEFGHIJKLMOPQRSTUVWXYZABCDEFGHIJKLMNPQRSTUVWXYZABCDEFGHIJKLMNOQRSTUVWXYZABCDEFGHIJKLMNOPRSTUVWXYZABCDEFGHIJKLMNOPQSTUVWXYZABCDEFGHIJKLMNOPQRTUVWXYZABCDEFGHIJKLMNOPQRSUVWXYZABCDEFGHIJKLMNOPQRSTVWXYZABCDEFGHIJKLMNOPQRSTUWXYZABCDEFGHIJKLMNOPQRSTUVXYZABCDEFGHIJKLMNOPQRSTUVWYZABCDEFGHIJKLMNOPQRSTUVWXZABCDEFGHIJKLMNOPQRSTUVWXY2)加密过程很简单,就是给定密钥字母x和明文字母y,密文字母是位于x行和y 列的那个字母。
这样就决定了加密一条消息需要与消息一样长的密钥字符串。
(本程序较简单采用的密钥字符串与密码相同)例:比如密钥词是deceptive,消息是“we are discovered save yourself”,那么加密过程如下:deceptivedeceptivedeceptive(密钥字符串)wearediscoveredsaveyourself(消息)ZICVTWQNGRZGVTWAVZHCQYGLMGJ(密文)密文中的第一个字母“Z”是怎么得来的?从Vigenere代换表中,以密钥字符串中的“d”为行,消息中的“w”为列的那个字母就是“Z”了。
3)本程序可以实现对用户名和密码等密码表信息的存储、添加、修改、删除。
程序代码:#include<iostream>#include<conio.h>#define MAX 100static int square[27][27];char * vigenere(char key[],char word[]);int set(struct Admin admin[],char *name);int landing(struct Admin admin[]);int resultadd(struct Admin admin[]);int resultres(struct Admin admin[]);int Delete(struct Admin admin[]);int update_m(struct Admin admin[]);int Search_m(struct Admin admin[]);using namespace std;struct Admin{char name[15];char code[20];};int Count=0;//全局变量记录用户数void main(){struct Admin admin[8];int n=1,m;char name[20];for(int i=0;i<Count;i++){for(int j=0;j<15;j++){admin[i].name[j]='\0';}}for(int i=0;i<Count;i++){for(int j=0;j<20;j++){admin[i].code[j]='\0';}}while(n){cout<<"\t\t****************************************\n";cout<<"\t\t** 用户登录系统**\n";cout<<"\t\t** **\n";cout<<"\t\t** 1:建立**\n";cout<<"\t\t** 2:登陆**\n";cout<<"\t\t** 3:加密**\n";cout<<"\t\t** 4:解密**\n";cout<<"\t\t** 5.查找**\n";cout<<"\t\t** 6:修改**\n";cout<<"\t\t** 7:删除**\n";cout<<"\t\t** 0:退出**\n";cout<<"\t\t****************************************\n";cout<<"\t\t请选择:";cin>>m;switch(m){case 1: set(admin,name);break;case 2: landing(admin); break;case 3: resultadd(admin);break;case 4: resultres(admin);break;case 5: Search_m(admin);break;case 6: update_m(admin);break;case 7: Delete(admin);break;case 0: n=0;break;}}}//建立用户int set(struct Admin admin[],char *name){int i=0;int c;cout<<"\t\t输入用户名:";cin>>admin[Count].name;cout<<endl<<"\t\t输入密码:";Count-=1-Count++;c=getch();while(c != '\r') //回车{if(i >= 0){if (c == '\b'){cout<<"\b \b";//\b只是退回一格,不清除的。
所以第一次\b退回后用空格覆盖。
然后再\b退回i = i - 1;}else{cout<<"*";admin[Count].code[i] = c;}}c = getch();if(c != '\b')i=i+1;}admin[Count].code[i] = '\0';cout<<endl<<endl;return 0;}//用户登录int landing(struct Admin admin[]){char Name[20],Code[20];int p=0,i=0,c,m=0;cout<<endl<<"\t\t输入用户名:";cin>>Name;cout<<endl<<"\t\t输入密码:";c=getch();while(c != '\r') //回车{if(i >= 0){if (c == '\b'){cout<<"\b \b";//\b只是退回一格,不清除的。
所以第一次\b退回后用空格覆盖。
然后再\b退回i = i - 1;}else{cout<<"*";Code[i] = c;}}c = getch();if(c != '\b')i=i+1;}Code[i] = '\0';for(int n=0;n<9;n++){if(strcmp(Name,admin[n].name)==0&&strcmp(Code,admin[n].code)==0){cout<<"\n\t\t登陆成功!\n";p=1;}}if(p!=1) //判断登录失败原因{for(m;m<9;m++){if(strcmp(Name,admin[m].name)==0){cout<<"\t\t密码错误!\n";return 0;}}cout<<"\t\t用户不存在!\n";}return 0;}/*加密算法*/char * vigenere(char key[],char word[]){char *text=(char *)malloc(MAX*sizeof(char));int key_length=strlen(key);int word_length=strlen(word);int i,j,c;for(i=0;i<word_length;i++){if((word[i]>=65&&word[i]<=90)||(word[i]>=97&&word[i]<=122)){ if(word[i]>=97&&word[i]<=122){c=word[i]-96;}else {c=word[i]-64;}j=i%key_length;text[i]=square[key[j]-96][c];}else text[i]=word[i];}text[i]='\0';return text;}/*解密算法*/char * anti_vigenere(char key[],char * en_word){char *word=(char *)malloc(MAX*sizeof(char));int key_length=strlen(key);int word_length=strlen(en_word);int i,j,c,k,d;for(i=0;i<word_length;i++){if(en_word[i]>=65&&en_word[i]<=90){c=i%key_length;/*所用密钥在所在*/k=key[c]-96;d=en_word[i]-square[k][1];if(d>=0){word[i]='a'+d;}else{word[i]='z'+d+1;}}else{word[i]=en_word[i];}}word[i]='\0';return word;}//加密结果int resultadd(struct Admin admin[]){char key[20],*en_word;int i,j,k,m;for(i=1;i<27;i++){for(j=1;j<27;j++){square[i][j]=63+i+j;if(square[i][j]>90)square[i][j]=square[i][j]-26;}}for(k=1;k<27;k++){for(m=1;m<27;m++){cout<<(char)square[k][m]<<" ";}cout<<"\n"<<endl;}for(i=0;i<=Count;i++){for(int s=0;s<20;s++){key[s]=admin[i].code[s];}en_word=vigenere(key,admin[i].code);cout<<"\n"<<"The result is: "<<"\n"<<en_word<<endl;}return 0;}//解密结果int resultres(struct Admin admin[]){char key[20],*en_word;int i,j,k,m;for(i=1;i<27;i++){for(j=1;j<27;j++){square[i][j]=63+i+j;if(square[i][j]>90)square[i][j]=square[i][j]-26;}}for(k=1;k<27;k++){for(m=1;m<27;m++){cout<<(char)square[k][m]<<" ";}cout<<"\n"<<endl;}for(i=0;i<=Count;i++){for(int s=0;s<20;s++){key[s]=admin[i].code[s];}en_word=anti_vigenere(key,admin[i].code);cout<<"\n"<<"The result is: "<<"\n"<<en_word<<endl;}return 0;}//查找用户秘密int Search_m(struct Admin admin[]){char sename[15];bool flag;cout<<"请输入要查找的用户名"<<endl;cin>>sename;while(Count>=0){for(int i=0;i<15;i++){if(sename[i]==admin[Count].name[i])flag=true;else flag=false;}Count--;}if(flag){for(int i=0;i<20;i++)cout<<admin[Count+1].code[i];cout<<endl;cout<<"查找用户密码成功!!!"<<endl;}else cout<<"用户名错误,请重新选择操作!!!"<<endl;return 0;}//修改用户密码int update_m(struct Admin admin[]){char oldname[15];char newpassword[20];bool flag;cout<<"请输入要修改密码的用户名!!!"<<endl;cin>>oldname;while(Count>=0){for(int i=0;i<15;i++){if(oldname[i]==admin[Count].name[i])flag=true;else flag=false;}Count--;}if(flag){cout<<"请输入新的密码!!!"<<endl;cin>>newpassword;for(int j=0;j<20;j++){admin[Count+1].code[j]=newpassword[j];}cout<<"修改用户成功!!!"<<endl;}else cout<<"用户名错误,请重新选择操作!!!"<<endl;return 0;}//删除用户int Delete(struct Admin admin[]){char oldname[15];bool flag;cout<<"请输入要删除的用户名!!!"<<endl;cin>>oldname;while(Count>=0){for(int i=0;i<15;i++){if(oldname[i]==admin[Count].name[i])flag=true;else flag=false;}Count--;}if(flag){for(int j=0;j<20;j++){admin[Count+1].code[j]='\0';}for(int k=0;k<15;k++){admin[Count+1].name[k]='\0';}cout<<"删除成功"<<endl;}else cout<<"用户名错误,请重新选择操作!!!"<<endl;return 0;}。