加密

HTTP 升级到 HTTPS 基础知识详解

半城伤御伤魂 提交于 2019-11-28 17:23:38
HTTP 与 HTTPS 详解 首发于公众号:吴先生的伊甸园 这俩天将个人做的小网站从 HTTP 升级成了 HTTPS,使用的是 Apache2.4 的服务器。在此期间,详细的学习了 https 相关的知识和如何配置 Apache 升级成 HTTPS。 本篇文章由以下部分构成 什么是 HTTP 什么是 HTTPS 为什么要使用 HTTPS HTTPS 是如何加密的 什么是 CA HTTP 和 HTTPS 连接是如何建立的 什么是证书 如何获取证书 什么是 HTTP HTTP 指的是超文本传输协议(HyperText Transfer Protocol)。首先,它是一个 协议 。「协议」是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规则。也就是大家事先约定好的,统一执行的标准。众所周知,HTTP 是无状态,无连接的。首先讲一下如何理解无连接。无连接指的是在 HTTP1.0 版本中,每次建立起的 TCP 连接只处理一个请求,收到客户的应答之后就立即断开链接。也就是说假如一个网页内仅有十张图片,那么需要建立-断开链接十一次。这就是无连接的含义。但是这种机制显然无法应对现在丰富的网页内容,每一个网页都包含大量的资源文件,如果每个连接仅传输一个文件就断开太过于浪费服务器资源了。所以在 HTTP1.1 中支持了持久性连接,详细点说就是在 HTTP 头部行中 Connection

java加密解密与数字证书的操作

纵然是瞬间 提交于 2019-11-27 17:25:35
1 Java程序实现密钥库的维护 1.1 Java程序列出密钥库所有条目 import java.util.*; import java.io.*; import java.security.*; public class ShowAlias{ public static void main(String args[ ]) throws Exception{ String pass="080302"; String name=".keystore"; FileInputStream in=new FileInputStream(name); KeyStore ks=KeyStore.getInstance("JKS"); ks.load(in,pass.toCharArray()); Enumeratione=ks.aliases( ); while( e.hasMoreElements()) { System.out.println(e.nextElement()); } } } 1.2 Java程序修改密钥库口令 import java.io.*; import java.security.*; public class SetStorePass{ public static void main(String args[ ]) throws Exception{ char[ ]

android签名机制(1)——了解签名

醉酒当歌 提交于 2019-11-27 09:55:36
android中所有运行在设备上的应用都必须要签名,这是系统提供的一种安全认证机制。 下面以问答形式来自我认识下,后面在根据部分内容来进一步研究: 1.为什么用签名机制?如果不签名呢? 为了防止app被反编译替换原有的程序,如果有相同包名的应用存在,新的apk则不能安装在设备上。 就算被反编译,在没有原有私钥的情况,重新签名生成的apk和原来的apk的标志是不同的。如此,被修改的apk如果安装在原来的设备上,则会提示: Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES] 如果不签名呢? 直接安装到设备上,则也提示: 从上面可以有个很简易的认知,如果不签名或者签名不对,则不能安装在设备上。 如果应用androidmenifast.xml中加了 android:sharedUserId="android.uid.system" 时,要用平台签名,否则提示 : 更多安装异常可以查找相关信息。 2.平台签名?签名有很多种么? 有很多种。在android源码目录build\target\product\security,有如下几种签名密钥。 *.pk8表示的是private key---私钥 *.x509.pem理解为公钥 这里的platform.*即为平台签名的私钥和公钥,加密方式是非对称加密。 从上图可以看出有好几种的签名

JavaScript加密库Crypto-JS的使用

走远了吗. 提交于 2019-11-27 05:58:03
先来图片一张,看看效果(一个采用Crypto-JS实现的 工具 展示): CryptoJS (crypto.js) 为 JavaScript 提供了各种各样的加密算法。目前已支持的算法包括: MD5 SHA-1 SHA-256 AES Rabbit MARC4 HMAC HMAC-MD5 HMAC-SHA1 HMAC-SHA256 PBKDF2 散列/哈希 CryptoJS是一个纯javascript写的加密类库( 下载 ),我们使用它只需要加入相关的引用即可: 散列/哈希示例1: <script type="text/javascript" src="http://www.osctools.net/js/CryptoJS/components/core-min.js"></script> <script type="text/javascript" src="http://www.osctools.net/js/CryptoJS/rollups/md5.js"></script> <script type="text/javascript"> alert("你好,欢迎来到开源中国在线工具,这是一个MD5测试 MD5:"+CryptoJS.MD5("你好,欢迎来到开源中国在线工具,这是一个MD5测试")); </script> 点此编辑代码并查看执行效果

Python与常见加密方式

邮差的信 提交于 2019-11-27 05:36:14
Python与常见加密方式 前言 数据加密与解密通常是为了保证数据在传输过程中的安全性,自古以来就一直存在,古代主要应用在战争领域,战争中会有很多情报信息要传递,这些重要的信息都会经过加密,在发送到对应的人手上。 现代 ,在网络发展初期,网络的数据安全性是没有被足够的重视的。事实上,当时为了实现数据可以通过网络进行传输已经耗费了科学家大部分脑细胞,因此在TCP/IP协议设计的初期,他们也实在没有太多精力去过多考虑数据在网络传输过程中可能存在的安全性问题。随着TCP/IP协议及相关技术的日渐成熟,网络数据传输技术越来越稳定,人们才慢慢开始重视这个问题 。 1. 什么是加密解密? “加密”的过程,就是把“明文”变成“密文”的过程;反之,“解密”的过程,就是把“密文”变为“明文”。在这两个过程中,都需要一个关键的东西——叫做“密钥”——来参与数学运算。 加密与解密函数的参数都要求是字节对象 ,在python中也就是我们的 Bytes 对象 Python 3.x中的str是字符串 , 使用python3进行加密与解密操作的时候,要确保我们操作的数据是 Bytes 字符串和 Bytes 互相转换可以使用 encode() 和 decode() 方法。 注:两位十六进制常常用来显示一个二进制字节。 利用 binascii 模块可以将十六进制显示的字节转换成我们在加解密中更常用的显示方式: In

JavaScript DES 加密tripledes.js:

£可爱£侵袭症+ 提交于 2019-11-27 00:23:23
<html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>JS设置DES加密处理</title> <script type="text/javascript" src="js/jquery.min.js"></script> <script src="js/rollups/tripledes.js"></script> <script src="js/components/mode-ecb.js"></script> <script> //DES 解密 加密 function encryptByDES(message, key) { var keyHex = CryptoJS.enc.Utf8.parse(key); var encrypted = CryptoJS.DES.encrypt(message, keyHex, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }); return encrypted.toString(); } //DES 解密 function decryptByDES(ciphertext, key) { var keyHex = CryptoJS.enc.Utf8