当前位置:首页 > 网站技术 > 后端技术 > 正文内容

Openssl常用功能和SSO单点登录逻辑

小彬2020-08-13后端技术70

Openssl 常用功能介绍

一、openssl rand 产生随机数

openssl rand 用于产生指定长度个 bytes 的随机字符。

实例如下:

E:\OpenSSL\foo>openssl rand -hex10

Loading 'screen' into random state - done

325567f39cb3dbf15a32

二、RSA 应用

#产生 1024 位 RSA 私匙,用 3DES 加密它,口令为 trousers,

#输出到文件 rsaprivatekey.pem

# openssl genrsa -out rsaprivatekey.pem -passout pass:trousers -des3 1024

#从文件 rsaprivatekey.pem 读取私匙,用口令 trousers 解密,

#生成的公钥匙输出到文件 rsapublickey.pem

# openssl rsa -in rsaprivatekey.pem -passin pass:trousers -pubout-out rsapubckey.pem

#用公钥匙 rsapublickey.pem 加密文件plain.txt,

#输出到文件 cipher.txt

# openssl rsautl -encrypt -pubin -inkeyrsapublickey.pem -in plain.txt -out cipher.txt

#使用私钥匙 rsaprivatekey.pem 解密密文 cipher.txt,

#输出到文件 plain.txt

# openssl rsautl -decrypt -inkey rsaprivatekey.pem -in cipher.txt -out plain.txt

#用私钥匙 rsaprivatekey.pem 给文件 plain.txt 签名,

#输出到文件 signature.bin

# openssl rsautl -sign -inkey rsaprivatekey.pem -in plain.txt -out signature.bin

#用公钥匙 rsapublickey.pem 验证签名signature.bin,

#输出到文件 plain.txt

# openssl rsautl -verify -pubin -inkey rsapublickey.pem -insignature.bin -out plain

#从 X.509证书文件 cert.pem 中获取公钥匙,

#用 3DES 加密 mail.txt

#输出到文件 mail.enc

# openssl smime -encrypt -in mail.txt -des3 -out mail.enc cert.pem

#从 X.509证书文件 cert.pem 中获取接收人的公钥匙,

#用私钥匙 key.pem 解密 S/MIME 消息 mail.enc,

#结果输出到文件 mail.txt

# openssl smime -decrypt -in mail.enc -recip cert.pem -inkey key.pem -out mail.txt

# cert.pem 为 X.509 证书文件,用私匙 key,pem 为 mail.txt 签名,

#证书被包含在 S/MIME消息中,输出到文件 mail.sgn

# openssl smime -sign -in mail.txt-signer cert.pem -inkey key.pem -out mail.sgn

#验证 S/MIME消息 mail.sgn,输出到文件 mail.txt

#签名者的证书应该作为 S/MIME消息的一部分包含在 mail.sgn 中

# openssl smime -verify -in mail.sgn -out mail.txt

三、base64 应用

#对字符 abc进行 base64 编码

#echo abc | openssl base64

结果为:YWJjCg==

#对 YWJjCg==解码

#echo YWJjCg== | openssl base64 -d

结果为:abc

#对文件 t.txt 进行 base64 编码

#openssl base64 -in t.txt

结果为:aGVsbG8K

#对 aGVsbG8K 进行解码

#echo aGVsbG8K | openssl base64 -d

结果为:abc

#对 t.txt 进行编码并将结果输出到 t.base64 文件里

#openssl base64 -in t.txt -out t.base64

#若编码值存放在 t.base64 文件里,对其进行解码

#openssl base64 -d-in t.base64

结果为 abc

四、des3 应用

#对称加密应用例子

#用DES3 算法的 CBC 模式加密文件 plaintext.doc,

#加密结果输出到文件ciphertext.bin

# openssl enc -des3 -salt -in plaintext.doc -out ciphertext.bin

#用DES3 算法的 OFB 模式解密文件 ciphertext.bin,

#提供的口令为trousers,输出到文件 plaintext.doc

#注意:因为模式不同,该命令不能对以上的文件进行解密

# openssl enc -des-ede3-ofb -d -in ciphertext.bin -out plaintext.doc -pass

pass:trousers

#用Blowfish 的 CFB模式加密plaintext.doc,口令从环境变量 PASSWORD 中取

#输出到文件ciphertext.bin

# openssl bf-cfb -salt -in plaintext.doc -out ciphertext.bin -pass env:PASSWORD




SSO单点登录

单点登录,是 Single Sign On 的缩写

用户只需要登录一次就可以访问所有应用系统

用户只需要注销一次即可注销所有应用系统



1、共享Session实现的SSO限制

不同系统语言可能不同

不同系统可能部署在不同地方

域名必须同源


2、SSO原理

有独立的认证中心(进行登录、注销等操作)

生成临时票据

生成全局Session

生成当前系统的本地Session

Openssl常用功能和SSO单点登录逻辑

Openssl常用功能和SSO单点登录逻辑

Openssl常用功能和SSO单点登录逻辑


服务端(认证中心)实现

验证用户的登录信息

创建全局会话

创建授权令牌

与sso-client通信发送令牌

校验sso-client令牌有效性

系统注册

接受sso-client注销请求,注销所有会话



客户端实现

拦截子系统未登录用户请求,跳转至sso认证中心

接受并存储sso认证中心发送的令牌

与sso-server通信,校验令牌的有效性

建立全局会话

拦截用户注销请求,向sso认证中心发送注销请求

接受sso认证中心发出的注销请求,销毁局部会话


标签: sso
分享给朋友:

相关文章

 PHP入门基础之会话控制基础和实战

PHP入门基础之会话控制基础和实战

1、会话控制基础会话是具有逻辑关联的多个简单交互的集合简单交互模型逻辑关联http是无状态协议每个请求都是单独处理的,协议无法识别当前用户。有状态vs无状态  (跟朋友吃饭【不用二次介绍】...

PHP入门基础之知识汇总

PHP入门基础之知识汇总

PHP官网:https://www.php.net/1、php基础语法:标准风格 <? php 代码段; ?>如果文档中只有PHP代码,结果标记要省略(规范?)短风格 <?代码段;...

PHPCMS列表页ajax动态获取更多(新手看完即会)

PHPCMS列表页ajax动态获取更多(新手看完即会)

本文取自Dong-Ge的phpcms 列表页ajax点击加载更多文章但是在实践过程中,由于我对phpcms的不熟悉导致还是浪费了一点时间经过咨询大佬,终于完美解决。1、在phpcms/model创建一...

使用火车头采集文章并发布在PHPCMS里(新手看完即会)

使用火车头采集文章并发布在PHPCMS里(新手看完即会)

网上其实有免登录的方法 https://www.gwygd.com/rRz6bMWRO.html但是我用过,发现不能用,所以只好用了登录的方法,所幸成功了。首先下载火车头,里面有phpcms采集文章的...

PHPCMS里Apache服务器的伪静态和定制404页面

PHPCMS里Apache服务器的伪静态和定制404页面

1、首先网站根目录要有.htaccess文件,我做的网站服务器是Apache,所以这里就先不讲nginx服务器环境下了,听说nginx环境更简单。 2、然后直接在.htaccess文件配置网...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

分享:

支付宝

微信