备忘:生成双向验证证书

故事背景

  黄蓉郭靖二个结婚并在北京买房生子,但因为二人无帝都户口女儿郭襄出生之后回桃花岛上学, 从此两人开始了双城生活。  郭靖在帝都打工挣钱 黄蓉在桃花岛带娃。 某日黄蓉说咱们女儿想学习你的降龙十八掌 郭靖请假三天乘坐高铁回家, 决定生成认证证书,方便以后在帝都远程指导女儿练功。即不影响工作上班,又不用担心武功绝学泄密。

回家之后他们请了德高望重的老前辈老玩童过来当个见证人。


/////////////////////////////////////////////////////////////////////////////////////////

//创建老玩童的KEY用来识别老玩童的身份

>openssl genrsa -des3 -out ca/oldUrchin.key 

输入密码:oldurchin

确定密码:oldurchin

//创建老玩童的证书请求文件

>openssl req -new -key ca/oldUrchin.key -out ca/oldUrchin.csr

输入密码:oldurchin

Country Name (2 letter code) [AU]:CN

State or Province Name (full name) [Some-State]:shandong

Locality Name (eg, city) []:ninghai

Organization Name (eg, company) [Internet Widgits Pty Ltd]:quanzhenjiao

Organizational Unit Name (eg, section) []:daoshi

...

Email Address []:zhoubotong@quanzhenjiao.com

...

//创建老玩童的证书

>openssl x509 -req -days 3650 -sha1 -extensions v3_ca -signkey ca/oldUrchin.key -in ca/oldUrchin.csr -out ca/oldUrchin.crt

输入密码:oldurchin


好了老玩前辈的事已经搞定了,可以让他在桃花岛自己先玩了.然后黄蓉和郭靖分别根据老顽童的密钥和证书生成自己的证书


/////////////////////////////////////////////////////////////////////////////////////////


>openssl genrsa -des3-out ca/huangRong.key 2048

输入密码:huangrong

确定密码:huangrong

//创建黄蓉的证书请求文件

>openssl req -new -key ca/huangRong.key -outca/huangRong.csr

输入密码:oldurchin

Country Name (2 letter code) [AU]:CN

State or Province Name (full name) [Some-State]:taohuadao

Locality Name (eg, city) []:taohuadao

Organization Name (eg, company) [Internet Widgits Pty Ltd]:quangzhitaitai

Organizational Unit Name (eg, section) []:taitai

...

Email Address []:huangrong@taohuadao.com

...

//根据老玩童的根证书创建黄蓉的的专用证书

>openssl x509 -req-days 730 -sha1 -extensions v3_req -CA ca/oldUrchin.crt -CAkey ca/oldUrchin.key -CAserialca/oldUrchin_huangrong.srl -CAcreateserial -in ca/huangRong.csr -out ca/huangRong.crt

输入密码:oldurchin

//创建pfx

>openssl pkcs12-export -in ca/huangRong.crt -inkey ca/huangRong.key -out ca/huangRong.pfx

输入密码:huangrong

Enter Export Password:iloveguojing

Verifying - Enter Export Password:iloveguojing

//创建公钥cer

>openssl x509 -informpem -in ca/huangRong.crt -outform der -out ca/huangRong_public.cer


/////////////////////////////////////////////////////////////////////////////////////////

>openssl genrsa -des3 -out ca/guoJing.key 2048

输入密码:guojing

确定密码:guojing

//创建郭靖的证书请求文件

>openssl req -new -key ca/guoJing.key -out ca/guoJing.csr

输入密码:oldurchin

Country Name (2 letter code) [AU]:CN

State or Province Name (full name) [Some-State]:xiangyang

Locality Name (eg, city) []:xiangyang

Organization Name (eg, company) [Internet Widgits Pty Ltd]:taohuadaodaxia

Organizational Unit Name (eg, section) []:daxia

...

Email Address []:guojing@gaibang.com

...

//根据老玩童的根证书创建郭靖的的专用证书

>openssl x509 -req -days 730 -sha1 -extensions v3_req -CA ca/oldUrchin.crt -CAkey ca/oldUrchin.key -CAserial ca/oldUrchin_guojing.srl -CAcreateserial -in ca/guoJing.csr -out ca/guoJing.crt

输入密码:oldurchin

//创建 pfx

>openssl pkcs12 -export -in ca/guoJing.crt -inkey ca/guoJing.key -out ca/guoJing.pfx

输入密码:guojing

Enter Export Password:ilovehuangrong

Verifying - Enter Export Password:ilovehuangrong

//创建公钥cer

>openssl x509 -inform pem -in ca/guoJing.crt -outform der -out ca/guoJing_public.cer


好到此为止在我们的CA目录中应该已经有已经这些文件了

guoJing.crt
guoJing.csr
guoJing.key
guoJing.pfx
guoJing_public.cer
huangRong.crt
huangRong.csr
huangRong.key
huangRong.pfx
huangRong_public.cer
oldUrchin.crt
oldUrchin.csr
oldUrchin.key
oldUrchin.srl
oldUrchin_guojing.srl
oldUrchin_huangrong.srl

由于时间关系 没办法在家传授功法 黄蓉把公钥huangRong_public.cer给了郭靖而郭靖把公钥guoJing_public.cer给了黄蓉

蓉儿与郭靖分开的时候四目相对 慧心一笑 送郭靖上车  一天之后郭靖抵达帝都

每天晚上黄蓉都使用自己的huangRong.pfx文件与郭靖给的公钥guoJing_public.cer对问题进行加密

而郭靖使用自己的guoJing.pfx文件与黄蓉给的公钥huangRong_public.cer对问题进行解密

从此之后 他们的信鸽来来回回飞 而且不怕秘密被人截获 十年之后郭襄也成为了一代女侠!!!




任务描述 在计算机专业的实践教学系统中,学生需要根据教师提供的模板框架来补充、改写程序。学生在编写代码过程中可能会因为思路不清晰而导致框架原有结构被破坏,因此学生希望系统具有恢复成初始状态的功能,这样就能重新开始。 本关任务:请用备忘录模式来实现模板框架的恢复功能。 实现方式 确定担任原发器角色的类。 重要的是明确程序使用的一个原发器中心对象, 还是多个较小的对象; 创建备忘录类。 逐一声明对应每个原发器成员变量的备忘录成员变量; 将备忘录类设为不可变。 备忘录只能通过构造函数一次性接收数据。 该类中不能包含设置器; 如果你所使用的编程语言支持嵌套类, 则可将备忘录嵌套在原发器中; 如果不支持, 那么你可从备忘录类中抽取一个空接口, 然后让其他所有对象通过接口来引用备忘录。 你可在该接口中添加一些元数据操作, 但不能暴露原发器的状态; 在原发器中添加一个创建备忘录的方法。 原发器必须通过备忘录构造函数的一个或多个实际参数来将自身状态传递给备忘录。该方法返回结果的类型必须是你在上一步中抽取的接口 (如果你已经抽取了)。 实际上, 创建备忘录的方法必须直接与备忘录类进行交互; 在原发器类中添加一个用于恢复自身状态的方法。 该方法接受备忘录对象作为参数。 如果你在之前的步骤中抽取了接口, 那么可将接口作为参数的类型。 在这种情况下, 你需要将输入对象强制转换为备忘录, 因为原发器需要拥有对该对象的完全访问权限; 无论负责人是命令对象、 历史记录或其他完全不同的东西, 它都必须要知道何时向原发器请求新的备忘录、 如何存储备忘录以及何时使用特定备忘录来对原发器进行恢复; 负责人与原发器之间的连接可以移动到备忘录类中。 在本例中, 每个备忘录都必须与创建自己的原发器相连接。 恢复方法也可以移动到备忘录类中, 但只有当备忘录类嵌套在原发器中, 或者原发器类提供了足够多的设置器并可对其状态进行重写时, 这种方式才能实现。 编程要求 根据提示,在右侧编辑器补充 Originator.java 文件中 Begin-End 内的代码,其它文件不需要修改。 测试说明 测试流程思想:先打印出内置的模板,然后读取你的输入替换模板再打印出来,最后把恢复后的代码再次打印出来: 测试输入: this is my code 预期输出: this is ______code t
04-28
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值