加密

21 | 如何保证数据传输的安全(上)?

数据安全越来越受到人们的重视,尤其是一些敏感数据,如重要的视频、音频等。在实现音视频通信的过程中,如果在网络上传输的音视频数据是未加密的,那么黑客就可以利用 Wireshark 等工具将它们录制下来,并很容易地将它们播放出来并泄漏出去。
如果这些音视频的内容涉及到股票交易或者其他一些更敏感的内容的话,很可能会造成不可挽回的损失。
对于浏览器更是如此,在全球至少有几亿用户在使用浏览器,这么大的用户量,如果通过浏览器进行音视频传输时,没有对音视频数据进行安全保护的话,那将会产生灾难性的后果。
既然数据安全这么重要,那接下来我将带你了解一下数据安全方面的相关概念。只有将这些基本概念搞清楚了,你才知道 WebRTC 是如何对数据进行防护的。

非对称加密

目前对于数据的安全保护多采用非对称加密,这一方法在我们的日常生活中被广泛应用。那什么是非对称加密呢?下面我就向你简要介绍一下。
在非对称加密中有两个特别重要的概念,即公钥私钥。它们起到什么作用呢?这里我们可以结合一个具体的例子来了解一下它们的用处。
有一个人叫小 K,他有一把特制的锁,以及两把特制的钥匙——公钥和私钥。这把锁有个非常有意思的特点,那就是:用公钥上了锁,只能用私钥打开;而用私钥上的锁,则只能公钥打开
这下好了,小 K 正好交了几个异性笔友,他们在书信往来的时候,难免有一些“小秘密”不想让别人知道。因此,小 K 多造了几把公钥,给每个笔友一把,当笔友给他写好的书信用公钥上了锁之后,就只能由小 K 打开,因为只有小 K 有私钥(公钥上的锁只有私钥可以打开),这样就保证了书信内容的安全。
从这个例子中,你可以看到小 K 的笔友使用公钥对内容进行了加密,只有小 K 可以用自己手中的私钥进行解密,这种对同一把锁使用不同钥匙进行加密 / 解密的方式称为非对称加密,而对称加密
            

PHP解密:zym加密 带乱码调试过程

欢迎阅读我的另一篇文章:PHP解密:魔方1代 PHP加密中的VMProtect分析,文中对 本贴 73# 层 提供的文件进行了分析

案例 1

实验样本

http://www.phpjiami.com/

据说“加密效果同行最高”?

到 http://www.phpjiami.com/phpjiami.html 随意上传一个 php 文件,然后下载加密后的文件,这就是我们要解密的文件。

    

基于JWE的API接口加密方案设计

前言

在这个互联网和移动互联网高速发展的时代,数据安全成了企业的头等大事。数据安全的范畴很大,包含:技术安全、服务安全、存储安全、传输安全等,本文主要是从传输安全的层面,设计一种基于JWE的API加密方案。

名词说明

**JWE **

JSON Web Encryption ,详细资料:http://self-issued.info/docs/draft-ietf-jose-json-web-encryption.html

目录

(一) 安全算法扫盲

(二) 安全方案演变

(三) JWE的介绍

(四) 基于JWE的API加密方案

本文主要讲解相关理论,后续会有实践的更新


(一) 安全算法扫盲

1.信息安全算法

1.1 加密相关算法

现代密码学中,把算法的加密技术主要分为:

单密钥模式

双密钥模式

无密钥模式

单密钥模式,也称为对称密钥模式,加密和解密方采用同一个密钥。采用这种模式的算法就叫做对称加密算法。

双密钥模式,也称作非对称密钥模式,加密和解密方采用不同的密钥。采用这种模式的算法就叫做非对称加密算法。

无密钥模式,也称作随机密钥模式,每次的密钥都是随机生成,使用一次之后失效。这是一种理想的加密模式,由于设计难度大,目前未得到广泛应用。

本文中主要针对前两类加密算法进行简单介绍。

1.1.1 对称加密算法(Symmetric Encryption)

对称加密算法,又称私钥加密算法,顾名思义加密和解密过程中只用到一个密钥,该密钥也称作私钥。

常见的对称加密算法有:DES、IDEA(基于DES)、3DES(基于DES)、RC4、RC5、RC6、AES。

特点

Feature

            

PHP进行AES/ECB/PKCS7 padding加密的例子(openssl)

上一篇文章讲到利用mcrypt对数据进行aes加密的方法,但是不支持php7.1.x版本,今天在stackoverflow上看到同样的问题,是使用openssl函数的处理方法,点击下面的链接stackoverflow查看问题,根据上面的问题整理出了一个简单的加密类,经测试完全符合业务需求,现在写出来,希望对以后的工作会有帮助。

使用php blenc扩展加密php源代码

使用php blenc扩展加密php源代码,不但可以加密源代码,还可以设置过期时间。

扩展地址 http://pecl.php.net/package/blenc

注意:不要启用opcache扩展,否则加密后的代码无法正常运行。

要加密的源码不需要<?php  及?>开始与结束标记

可指定个人密钥。

可指定一个BLENC模块过期日期。 你可以决定BLENC 模块将工作到一个日期。之后,BLENC不会解密任何文件.

这些都可以在头文件 blenc_protect.h中设置,设置好后再编译BLENC.

用法:

http://cn2.php.net/manual/en/function.blenc-encrypt.php

安装用phpize安装  phpize  ./configure make make install.

注意,如果安装后,访问php出现500错误,请试着打开 php.ini中的expose_php=On;