OpenSSL

Java实现文件的加密与解密

丶灬走出姿态 提交于 2021-01-03 16:23:32
最近在做一个项目,需要将资源文件(包括图片、动画等类型)进行简单的加密后再上传至云上的服务器,而在应用程序中对该资源使用前先将读取到的文件数据进行解密以得到真正的文件信息。此策略的原因与好处是将准备好的资源存储在云上,使用时通过网络进行读取即可,减少了应用程序本身的大小。这一点对于移动应用尤其重要,特别是在资源量较大且需要对其进行保护的时候。毕竟在目前所处的大环境下,要想复制一款软件不难,那真正宝贵的就是不容易找到的资源了。   先对文件与加密的相关知识做一个极为简单的科普(知道的可以跳过)。    文件与字串   A、文件的操作流程一般为:打开-->读取-->对内容进行变换-->写入-->关闭。   B、常规性文件操作会用到的类有五个:File,InputStream,OutputStream,FileInoutStream,FileOutputStream,均包含在java.io下面。注意,在使用前必须对类文件进行导入,方法为import java.io.File(实现时需要分号结尾)。   C、创建InputStream类和OutputStream类的对象时,new关键字后边的类分别是FileInputStream和FileOutputStream(而不是其自身),如InputStream fin = new FileInputStream(File objectFile)

VMware下载安装及CentOS7下载安装

好久不见. 提交于 2021-01-03 14:21:30
我是在Windows10系统下,下载的VMware Workstation 12 第一步、下载虚拟机软件   安装包位置(里面有激活码):https://pan.baidu.com/s/1i5hn5lj   或者: VMware-workstation安装包 第二步、软件安装步骤   双击安装文件      弹出安装询问中,点击【是】,进入安装画面。         点击【下一步】。      点选【我接受许可协议中的条款】,点击【下一步】。      这里更改安装位置,点击【更改】。      选定自己要安装到的位置后,点击【确定】。      增强型键盘驱动程序,主要功能是绕过Windows按键处理和较低层的恶意软件,从而提高安全性,另一方面可以更好兼容国际键盘和带有额外按键的键盘。通常不用管,直接点选【下一步】。      产品更新,帮助完善都是没用的东西,默认情况下是选择的,点击□,取消对号即可,点击【下一步】      喜欢桌面有快捷方式,就在桌面快捷方式前打钩。点击【下一步】      点击【安装】。      进入安装过程      这就安装完成了 第三步、软件激活    第一种激活方式   安装完成的画面中,直接选择【许可证】      输入自己的序列号后,点击【输入】。      这就完成激活了。      点击【帮助】-【关于VMware Workstation

ssl not available

旧时模样 提交于 2021-01-03 08:38:54
问题 every time I try to pip install something, it says: WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available. WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/tensorflow/ WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken

那些年与面试官交手过的HTTP问题

北战南征 提交于 2021-01-03 07:21:42
这是前端食堂的第25篇原创 「观感度:🌟🌟🌟🌟🌟」 「口味:剁椒鱼头」 「烹饪时间:20min」 本文已收录在 Github ,https://github.com/Geekhyt/front-end-canteen,感谢Star。 从淡黄的长裙和蓬松的头发我察觉到,面前坐着的这位女面试官属实是有点东西。我的自我介绍也变得声情并茂起来。Skr~~~ 在此期间,小姐姐面无改色的看着我的简历。不过无所谓,这些都不重要。 还是咱们的原定计划,把面试官引到了咱们最擅长的领域。 你觉得自己最擅长的是什么? HTTP 协议吧,我还算比较了解。 0.那你说一下OSI 网络分层模型是怎样分层的? 应用层、表示层、会话层、传输层、网络层、数据链路层、物理层 application layer、presentation layer、session layer、transport layer、network layer、data link layer、physical layer 1.TCP/IP 网络分层模型是怎样分层的? 应用层、传输层、网际层、链接层 application layer、transport layer、internet layer、link layer 2.TCP 和 UDP 区别? TCP 和 UDP 都是传输层的协议,但二者有着截然不同的基因。 TCP: 面向连接 面向字节流

cookie,session,token

倾然丶 夕夏残阳落幕 提交于 2021-01-02 18:32:16
发展史 1、很久很久以前,Web 基本上就是文档的浏览而已, 既然是浏览,作为服务器, 不需要记录谁在某一段时间里都浏览了什么文档,每次请求都是一个新的HTTP协议, 就是请求加响应, 尤其是我不用记住是谁刚刚发了HTTP请求, 每个请求对我来说都是全新的。这段时间很嗨皮 2、但是随着交互式Web应用的兴起,像在线购物网站,需要登录的网站等等,马上就面临一个问题,那就是要管理会话,必须记住哪些人登录系统, 哪些人往自己的购物车中放商品, 也就是说我必须把每个人区分开,这就是一个不小的挑战,因为HTTP请求是无状态的,所以想出的办法就是给大家发一个会话标识(session id), 说白了就是一个随机的字串,每个人收到的都不一样, 每次大家向我发起HTTP请求的时候,把这个字符串给一并捎过来, 这样我就能区分开谁是谁了 3、这样大家很嗨皮了,可是服务器就不嗨皮了,每个人只需要保存自己的session id,而服务器要保存所有人的session id ! 如果访问服务器多了, 就得由成千上万,甚至几十万个。 这对服务器说是一个巨大的开销 , 严重的限制了服务器扩展能力, 比如说我用两个机器组成了一个集群, 小F通过机器A登录了系统, 那session id会保存在机器A上, 假设小F的下一次请求被转发到机器B怎么办? 机器B可没有小F的 session id啊。 有时候会采用一点小伎俩

centos7源码包安装nginx-1.18.0最新稳定版

自闭症网瘾萝莉.ら 提交于 2021-01-02 11:06:56
目录 1.获取源码包 2.检查编译环境 3.编译安装nginx 4.启动nginx服务 5.浏览器访问nginx 6.配置前端页面 7.常用命令 1.获取源码包 个人习惯将安装包放在/opt目录下,解压后,进入安装目录 # 进入/opt目录 cd /opt # 获取最新稳定版 wget http://nginx.org/download/nginx-1.18.0.tar.gz # 解压 tar -zxvf nginx-1.18.0.tar.gz 2.检查编译环境 安装流程为:./configure(检查编译安装环境) ==> make(编译) ==> make install (编译安装)。 过程其实并不复杂,我将安装依赖的过程也放上来,只为了提供一些学习的思路。 以下是检查编译安装环境的全部过程,熟悉安装的可以跳过此步骤,需要注意的是:./configure命令并不会安装nginx。 # 说明: # 检查环境执行命令:./configure # 这里我们添加一些参数,所以检查环境执行的命令是:./configure --prefix=/usr/local/nginx --with-http_gzip_static_module --with-http_ssl_module # 添加的参数说明: # --prefix=/usr/local/nginx 指定我们将nginx安装在

Liunx 部署邮件TLS/SSL加密通信服务

左心房为你撑大大i 提交于 2021-01-02 04:09:51
部署邮件TLS/SSL加密通信服务 一.部署普通邮件服务器 1) 搭建并检测邮件服务的发送服务 [root@mail ~]# rpm -q postfix postfix-2.10.1-6.el7.x86_64 [root@mail ~]# netstat -pantu | grep :25 tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1822/master tcp6 0 0 ::1:25 :::* LISTEN 1822/master [root@mail ~]# ps -C master PID TTY TIME CMD 1822 ? 00:00:00 master [root@mail ~]# vim /etc/postfix/main.cf [root@mail ~]# sed -n "113p;116p;419p" /etc/postfix/main.cf inet_interfaces = all #inet_interfaces = localhost home_mailbox = Maildir/ [root@mail ~]# systemctl restart postfix.service [root@mail ~]# useradd jim [root@mail ~]# echo 654321 | passwd --stdin

Openshift与Kubernetes的区别

谁说我不能喝 提交于 2021-01-01 16:03:37
OpenShift被其供应商——Red Hat称为“ Enterprise Kubernetes”。在本文中,我将描述OpenShift和Kubernetes之间的真正差异。由于Red Hat倾向于将其描述为PaaS,因此常常令人困惑,有时掩盖了 Kubernetes是OpenShift不可或缺的一部分, 并围绕它构建了更多功能这一事实。让我们深入研究一下两者之间的真正区别。 1. OpenShift产品与Kubernetes项目 Kubernetes是一个开源的项目(甚至框架),而OpenShift是一个产品是有多种版本。其中一个称为OKD的OpenShift开源版本。以前它被称为OpenShift Origin,但是Red Hat的一些“聪明”的人想出了这个新名称,它的意思是“推动Red Hat OpenShift的Kubernetes的Origin社区发行版”(?)。但是,让我们暂时忘掉名称,只关注其含义。 有几个: OpenShift Container Platform是一种产品,您可以将其安装在基础设施上,该产品包含订阅附带的付费支持 您需要为集群续订OpenShift订阅,并且随着集群的增长需要支付更多费用 Kubernetes有很多发行版,但这是一个项目,如果出现了故障,您可以主要依靠社区或外部专家(在某些情况下,它们有时可能比Red Hat支持的要好)

TLS handshake through Istio ingress gateway fails (tlsMode=passthrough)

流过昼夜 提交于 2021-01-01 09:14:29
问题 A TLS handshake from an external client to a server inside a Kubernetes cluster fails. This is about understanding why. I've configured an Istio ingress gateway to pass through TLS received on port 15433, and route it to the server on port 433. The ingress gateway logs shows activity when the client attempts the TLS handshake, but not the server logs, nor the istio-proxy logs. TLS client : openssl s_client \ -connect [redacted]-[redacted].us-west-2.elb.amazonaws.com:15443 \ -servername

Building libcurl with static linking to openssl

依然范特西╮ 提交于 2021-01-01 07:32:21
问题 I am trying to build libcurl with static linking to openssl. So to achieve that, I have used following configuration: OpenSSL: LDFLAGS="-static” LIBS="-ldl” cURL: LDFLAGS="-static” CPPFLAGS="-I$(CURDIR)/$(3RDPARTY_DIR)$(OPENSSL)/include LDFLAGS="-L$(CURDIR)/$(3RDPARTY_DIR)$(OPENSSL)" ./configure --disable-shared --without-zlib --without-libidn --without-librtmp --disable-ldap —-with-ssl=<path where my openssl is installed> With this, I am to generate libcurl.a and link it to my code where I