OpenSSL

对称加密与非对称加密

倾然丶 夕夏残阳落幕 提交于 2020-12-17 02:42:42
对称加密: A与 B 之间之间的通讯数据都用同一套的密钥来进行加密解密。 优点 简单快捷,密钥较短,且破译困难。 缺点 如果用户一旦多的话,管理密钥也是一种困难。不方便直接沟通的两个用户之间怎么确定密钥也需要考虑,这其中就会有密钥泄露的风险,以及存在更换密钥的需求。 对称加密通常有 DES,IDEA,3DES 加密算法。 非对称加密: 用公钥和私钥来加解密的算法。打个比方,A 的公钥加密过的东西只能通过 A 的私钥来解密;同理,A 的私钥加密过的东西只能通过 A 的公钥来解密。顾名思义,公钥是公开的,别人可以获取的到;私钥是私有的,只能自己拥有。 缺点 加解密比对称加密耗时. 优点 比对称加密安全. 但是非对称加密也是存在漏洞,因为公钥是公开的,如果有 C 冒充 B 的身份利用 A 的公钥给 A 发消息,这样就乱套了,所以接下来就采用非对称加密+摘要算法+数字签名的机制来确保传输安全。 常见的非对称加密算法有:RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用) Hash算法: Hash算法的特点是单向不可还原,用户可以通过hash算法对目标信息生成一段特定长度的唯一hash值,却不能通过这个hash值重新获得目标信息。因此Hash算法常用在不可还原的密码存储、信息完整性校验等。只要源数据不同,算法得到的摘要必定不同。

PHP的Mcrypt加密扩展知识了解

余生长醉 提交于 2020-12-17 02:06:15
PHP的Mcrypt加密扩展知识了解 今天我们来学习的是 PHP 中的一个过时的扩展 Mcrypt 。在 PHP7 之前,这个扩展是随 PHP 安装包一起内置发布的,但是现在新版本的 PHP 中已经没有了,需要使用这个扩展的话我们需要单独安装,并且在使用的时候也是会报出过时的警告的。所以,我们学习使用这些函数的时候,就需要使用 @ 来抑制错误信息。当然,之所以会对这套扩展发出过时警告,是因为 PHP 更加推荐使用 OpenSSL 来处理类似的加密能力。 模块和算法 Mcrypt 主要是使用的 Mcrypt 工具来进行加密操作的,所以在 CentOS 或者其它操作系统中,我们需要安装 libmcrypt-devel 来使用这个扩展。如果 yum 中无法安装的话,直接更新 yum 源即可。 Mcrypt 包含很多的模块和算法。算法就不用多解释了,就是用来对数据进行加密的方式。而模块,包括 CBC, OFB,CFB 和 ECB 这几种,是一系列的分组、流式加密的模式,有推荐的模块,也有安全的模块,具体的区分大家可以自行查阅相关的资料,这里我们先看一下我们的环境中所支持的模块和算法。 $algorithms = @mcrypt_list_algorithms(); print_r($algorithms); // Array // ( // [0] => cast-128 // [1] =

PHP加密函数—sha1()函数加密

♀尐吖头ヾ 提交于 2020-12-17 01:33:35
首先我们先介绍下什么是 sha1 ? 大理石构件 sha的全称是:Secure Hash Algorithm(安全哈希算法)主要适用于数字签名标准 (Digital Signature Standard DSS)里面定义的数字签名算法(Digital Signature Algorithm DSA)。对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要。当接收到消息的时候,这个消息摘要可以用来验证数据的完整性。在传输的过程中,数据很可能会发生变化,那么这时候就会产生不同的消息摘要。PHP提供的sha1()函数使用的就是SHA 算法! 在之前介绍的两篇文章《PHP加密函数—crypt()函数加密》和《PHP加密函数—md5()函数加密》,相信大家对加密有一定了解,在本章中我们将继续介绍跟MD5()函数类似的sha1()函数算法。 sha1()函数的语法格式如下: 1 string sha1 ( string $str [, bool $raw_output = false ] ) 参数 描述 string 必需。规定要计算的字符串。 raw 可选。规定十六进制或二进制输出格式:TRUE - 原始 20 字符二进制格式FALSE - 默认。40 字符十六进制数 函数返回一个 40位的十六进制数,如果参数 raw_output 为 true,那么就会返回一个

PHP的Sodium加密扩展函数了解

梦想的初衷 提交于 2020-12-17 00:51:53
PHP的Sodium加密扩展函数了解 这是本次加密扩展系列的最后一篇文章,也是我们要学习了解的最后一个 PHP 加密扩展。Sodium 出现的目的也是为了代替 Mcrypt 这个原来的加密扩展。在 PHP7.2 之后,Mcrypt 已经被移除,在 PHP7.1 时就已经被标记为过时。不过,Sodium 扩展的应用也并不是很多,大部分情况下我们都会使用 OpenSSL 来进行加密操作,同时,Sodium 扩展提供的函数也非常多,所以,我们这篇文章只做了解即可。当然,最主要的是,关于这个扩展即使是官方文档也没有完善,大部分函数的参数说明都没有,搜索出来的资料也是非常少。 Sodium 扩展在 PHP7.2 后是跟随 PHP 源码一起发布的,只需要在编译的时候加上 --with-sodium 即可安装成功。如果是 PHP7.2 之前的版本,需要单独安装这个扩展。同时,操作系统中也需要安装 libsodium-devel 库。 AEAD_AES_256_GCM 加解密 首先是这个 AEAD_AES_256_GCM 加解密能力函数的应用。在微信支付相关的开发中,有一个接口就是使用的这种方式进行数据加密,在官方文档中,也提供了 PHP 对应的解密方式,其中使用的就是 Sodium 扩展库中的函数。(见文末参考文档中第二条链接) $data = '测试加密' ; // 原始数据 $nonce =

centos7配置国内yum源

℡╲_俬逩灬. 提交于 2020-12-17 00:34:00
2019-08-10 此类文章网上很多,偷个懒,转了一篇比较全的文章 1、什么是yum仓库? yum仓库就是使用yum命令下载软件的镜像地址。 我们通常使用 yum install 命令来在线安装 linux系统的软件, 这种方式可以自动处理依赖性关系,并且一次安装所有依赖的软体包,但是经常会遇到从国外镜像下载速度慢,无法下载的情况。那么此时我们就需要把我们的yum 源改为国内的镜像。 yum的配置文件 yum 的配置文件在 /etc/yum.repos.d 目录下, 其中有多个配置文件,每一个配置文件中都可以配置一个或多个repository, 但是最终会被合并为一个交给系统,所以多个文件只是为了方便管理。 2、yum仓库配置 下面提供了 阿里和 清华大学 两个镜像仓库配置操作说明,=实际使用时,选择其中一个配置即可。 2.1、配置 阿里镜像仓库 进入阿里镜像仓库网站 https://opsx.alibaba.com/mirror 找到centos,点击右边的 帮助 ,看到阿里镜像仓库给出的yum的配置说明。 2.1.1、配置步骤 根据官网的说明,我们详细说说每步骤的意思。 (1)、备份,将 CentOS-Base.repo 为CentOS-Base.repo.backup mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d

新型勒索病毒Crypted强势来袭

流过昼夜 提交于 2020-12-17 00:08:35
最近一款新型的勒索病毒强势来袭,对捕获到的样本进行了详细分析,勒索病毒运行之后,勒索信息文本文件,如下所示: 勒索病毒加密后的文件后缀名为crypted,如下所示: 1.勒索病毒母体使用.NET框架,C#语言进行编写,如下所示: 2.通过反编译,查看程序的入口,如下所示: 3.拷贝自身到C:\用户名\Systems目录下local.exe,如下所示: 4.创建随机的加密的密钥,如下所示: 5.遍历相应的目录文件,并加密,如下所示: 需要加密的文件目录和磁盘目录,如下所示: C:\Users\用户名\Desktop C:\Users\用户名\Links C:\Users\用户名\Contacts C:\Users\用户名\Desktop C:\Users\用户名\Documents C:\Users\用户名\Downloads C:\Users\用户名\Pictures C:\Users\用户名\Music C:\Users\用户名\OneDrive C:\Users\用户名\Saved Games C:\Users\用户名\Favorites C:\Users\用户名\Searches C:\Users\用户名\Videos D:\ E:\ B:\ F:\ 6.遍历目录文件,使用之前生成的随机密钥,加密相应后缀名的文件,如下所示: 需要加密的文件后缀名列表,如下所示: txt

php RSA加解密

依然范特西╮ 提交于 2020-12-16 20:41:53
相关介绍 RSA算法属于非对称加密算法,非对称加密算法需要两个秘钥:公开密钥(publickey)和私有秘钥(privatekey).公开密钥和私有秘钥是一对, 如果公开密钥对数据进行加密,只有用对应的私有秘钥才能解密; 如果私有秘钥对数据进行加密那么只有用对应的公开密钥才能解密. 因为加密解密使用的是两个不同的秘钥,所以这种算法叫做非对称加密算法.简单的说就是公钥加密私钥解密,私钥加密公钥解密. 需要注意的地方 1. RSA 加密或签名后的结果是不可读的二进制,使用时经常会转为 BASE64 码再传输 2. RSA 加密时,对要加密数据的大小有限制,最大不大于密钥长度。例如在使用 1024 bit 的密钥时(秘钥生成可以自行百度),最大可以加密 1024/8=128 Bytes 的数据。数据大于 128 Bytes 时,需要对数据进行分组加密(如果数据超限,加解密时会失败,openssl 函数会返回 false),分组加密后的加密串拼接成一个字符串后发送给客户端。 为了保证每次加密的结果都不同,RSA 加密时会在待加密数据后拼接一个随机字符串,再进行加密。不同的填充方式 Padding 表示这个字符串的不同长度,在对超限数据进行分组后,会按照这个 Padding 指定的长度填入随机字符串。例如如果 Padding 填充方式使用默认的 OPENSSL_PKCS1_PADDING

RSA加解密

雨燕双飞 提交于 2020-12-16 20:33:30
公私钥生成 import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; import java.security.Key; import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.interfaces.RSAPrivateKey; import java.security.interfaces.RSAPublicKey; import java.util.HashMap; import java.util.Map; public class CreateSecrteKey { public class Keys { } public static final String KEY_ALGORITHM = "RSA"; //public static final String SIGNATURE_ALGORITHM = "MD5withRSA"; private static final String PUBLIC_KEY = "knpubPublicKey"; private static final String PRIVATE_KEY = "knpubPrivateKey"; //获得公钥

威胁情报之资产收集

允我心安 提交于 2020-12-16 17:02:22
17bdw 威胁情报收集之资产收集 从乙方威胁情报角度通过漏扫探测C2主机指纹,结合内部威胁情报做数据关联,可以找出更多的样本,分析样本找到网络特征和主机特征。而一套探测过程对于渗透测试来说来说往往提到的就是高危端口暴露,信息收集。 0x1 什么是漏洞扫描 漏洞扫描是完成风险评估的一种手段。很多专业者都搞出了很自动化、工程化的系统出来,从子域收集,ip 提取,字典定制化生成,新业务监控,威胁情报收集,漏洞扫描、告警,甚至自动生成报告,提交至 zdi、hackerOne 及各大 SRC 平台,实现技术套现…… 威胁情报角度,一个C2可以扫描子域名、C段服务器端口、banner、证书几个角度结合,在自研发监控系统中部署监控规则获取更多样本,找出攻击事件。 0x2 为什么要做网段的探测 针对某些特定网段做同源确实会有威胁情报挖掘的价值。参考《 那些和185.244.25.0/24网段有关的Botnet 》 通过收集特定网段的端口信息结合当前掌握C2主机信息。资产收集的作用如下: 情报搜集 :ip段搜索存活主机,域名、ip是否与apt组织活动有关联 **情报关联:**通过关联的ip、域名开放的端口与掌握的数据进行匹配判断C2主机实际作用 **数据挖掘:**通过内部威胁情报数据挖掘受控主机范围、样本数据 数据关联 :分析样本,关联样本与主机的关系。入库主机的远程端口开放规则

一键申请多个证书 shell 脚本

£可爱£侵袭症+ 提交于 2020-12-16 14:52:25
[root@centos8 ~]#cat certs.sh #!/bin/bash # #******************************************************************** #Author: wangxiaochun #QQ: 29308620 #Date: 2020-02-29 #FileName: test.sh #URL: http://www.wangxiaochun.com #Description: The test script #Copyright (C): 2020 All rights reserved #******************************************************************** . /etc/init.d/functions CERT_INFO=([00]="/O=heaven/CN=ca.god.com" \ [01]="cakey.pem" \ [02]="cacert.pem" \ [03]=2048 \ [04]=3650 \ [05]=0 \ [10]="/C=CN/ST=hubei/L=wuhan/O=Central.Hospital/CN=master.liwenliang.org" \ [11]="master.key" \