aes加密

Python实现加密方法集合

爱⌒轻易说出口 提交于 2020-02-17 14:22:28
一、常用的js加密算法 1、js加密解密算法 对称加密(加密解密密钥相同):DES、DES3、AES 非对称加密(分公钥私钥):RSA 信息摘要算法/签名算法:MD5、HMAC、SHA 2、算法说明 ①新浪微博登陆: RSA(非对称加密方式) 登录前先get请求返回携带有token、pubkey、raskv、servertime等信息的dict字符串,包含在js中需要提取转换 需要破解的参数是su和sp,sp是密码<br> su:是通过封装了RSA源码的一个对象sinaSSOEncoder的base64编码用户名得到的<br> sp:加密的密码,通过创建sinaSSOEncoder加密对象,公钥是上面返回的pubkey,偏移量"10001" 加密内容是servertime + "\t" + nonce + "\n" + pw servertime:上面get请求返回的 nonce:上面get请求返回的 pw:输入的密码 ②腾讯企鹅媒体:MD5双重加密(信息摘要算法或签名算法) 登录前后台会get请求一次,返回含有token和salf等加密参数信息以及一个cookie,该cookie要加在post的请求中 加密形式:MD5(token + MD5(salt + pwd))双重加密 ③网易云获取评论请求参数加密:加密方式AES+RSA 评论请求加密参数是两个:params

Nodejs实战系列:数据加密与crypto模块

好久不见. 提交于 2020-02-08 14:11:56
博客地址: 《NodeJS模块研究 - crypto》 Github : https://github.com/dongyuanxin/blog nodejs 中的 crypto 模块提供了各种各样加密算法的 API。这篇文章记录了常用加密算法的种类、特点、用途和代码实现。其中涉及算法较多,应用面较广,每类算法都有自己适用的场景。为了使行文流畅,列出了本文记录的几类常用算法: 内容摘要:散列(Hash)算法 内容摘要:HMac 算法 内容加解密:对称加密(AES)与非对称加密解密(RSA) 内容签名:签名和验证算法 散列(Hash)算法 散列函数(英语:Hash function)又称散列算法、哈希函数,是一种从任何一种数据中创建小的数字“指纹”的方法。基本原理是将任意长度数据输入,最后输出固定长度的结果。 hash 算法具有以下特点: 不能从 hash 值倒推原数据 不同的输入,会有不同的输出 好的 hash 算法冲突概率更低 正因为 hash 算法的这些特点,因此 hash 算法主要用于:加密、数据检验、版本标识、负载均衡、分布式(一致性 hash)。 下面实现了一个获取文件标识的函数: const crypto = require("crypto"); const fs = require("fs"); function getFileHash(file, algorithm

看完这篇文章,我奶奶都懂了https的原理

僤鯓⒐⒋嵵緔 提交于 2020-01-26 18:48:35
  前言   前段时间看到一篇文章讲如何保证API调用时数据的安全性(传送门: https://blog.csdn.net/ityouknow/article/details/80603617 ),文中讲到利用RSA来加密传输AES的秘钥,用AES来加密数据,并提供如下思路:   说人话就是前、后端各自生成自己的RSA秘钥对(公钥、私钥),然后交换公钥(后端给前端的是正常的明文公钥,前端给后端的是用后端公钥加密后的密文公钥;PS:其实我觉得直接交换两个明文公钥就行了),后端生成AES的 明文key ,用明文key进行AES加密得到 密文数据 ,用前端的公钥进行RSA加密得到 密文key ,API交互时 并将密文数据与密文key进行传输,前端用自己的私钥进行RAS解密的到明文key,用明文key进行AES解密得到明文数据;前端给后端发送数据时同理,这样一来,传输的数据都是密文,且只有秘钥才能解密   可惜这篇博客只提供了思路,但并没有具体的代码,我们在网上查找一下资料,开始生撸代码,实现一个前后端API交互数据加密——AES与RSA混合加密,并应用到项目中   后端加、解密   从网上查找工具类,再进行改造   先引入Base64工具类 <!-- Base64编码需要 --> <dependency> <groupId>org.apache.directory.studio<

如何保护你的 Python 代码 (一)—— 现有加密方案

独自空忆成欢 提交于 2020-01-23 00:33:08
https://zhuanlan.zhihu.com/p/54296517 0 前言 去年11月在PyCon China 2018 杭州站分享了 Python 源码加密 ,讲述了如何通过修改 Python 解释器达到加解密 Python 代码的目的。然而因为笔者拖延症发作,一直没有及时整理成文字版,现在终于战胜了它,才有了本文。 本系列将首先介绍下现有源码加密方案的思路、方法、优点与不足,进而介绍如何通过定制 Python 解释器来达到更好地加解密源码的目的。 由于 Python 的动态特性和开源特点,导致 Python 代码很难做到很好的加密。社区中的一些声音认为这样的限制是事实,应该通过法律手段而不是加密源码达到商业保护的目的;而还有一些声音则是不论如何都希望能有一种手段来加密。于是乎,人们想出了各种或加密、或混淆的方案,借此来达到保护源码的目的。 常见的源码保护手段有如下几种: 发行 .pyc 文件 代码混淆 使用 py2exe 使用 Cython 下面来简单说说这些方案。 1 发行 .pyc 文件 1.1 思路 大家都知道,Python 解释器在执行代码的过程中会首先生成 .pyc 文件,然后解释执行 .pyc 文件中的内容。当然了,Python 解释器也能够直接执行 .pyc 文件。而 .pyc 文件是二进制文件,无法直接看出源码内容。如果发行代码到客户环境时都是

主机漏洞-SSL/TLS 受诫礼(BAR-MITZVAH)***漏洞(CVE-2015-2808)【原

↘锁芯ラ 提交于 2020-01-22 01:46:09
一、漏洞分析 事件起因 2015年3月26日,国外数据安全公司Imperva的研究员Itsik Mantin在BLACK HAT ASIA 2015发表论文《Attacking SSL when using RC4》阐述了利用存在了13年之久的RC4漏洞——不变性弱密钥(《Weakness in the Key Scheduling Algorithm of RC4》,FMS 发表于2001年)进行的***,并命名为“受戒礼”***(Bar Mitzvah Attack)。 直到2015年3月,还有约30%的网络通信是由RC4进行保护的。通过“受戒礼”***,***者可以在特定环境下只通过嗅探监听就可以还原采用RC4保护的加密信息中的纯文本,导致账户、密码、信用卡信息等重要敏感信息暴露,并且可以通过中间人(Man-in-the-middle)进行会话劫持。 ***方法和模式 ***者嗅探监听大量的SSL链接,可以判断第一个加密消息包含SSL的完成消息和HTTP请求,都是具有可预测的信息的。然后等待一个不变性弱密钥的链接到来,当获取到一个弱密钥链接时候就可以提取出LBS。当弱密钥使用的时候,明文和密钥会进行异或,***者可以看到生成的密文模式。 ***者同样也进行DNS投毒,将所有的链接链接到一个恶意的主机,主机进行中间人***,能够有效地进行大量用户的嗅探监听和会话劫持。

主机漏洞-SSL/TLS 受诫礼(BAR-MITZVAH)攻击漏洞(CVE-2015-2808)【原理扫描】-RC4密码套件

Deadly 提交于 2020-01-20 03:28:11
一、漏洞分析 事件起因 2015年3月26日,国外数据安全公司Imperva的研究员Itsik Mantin在BLACK HAT ASIA 2015发表论文《Attacking SSL when using RC4》阐述了利用存在了13年之久的RC4漏洞——不变性弱密钥(《Weakness in the Key Scheduling Algorithm of RC4》,FMS 发表于2001年)进行的攻击,并命名为“受戒礼”攻击(Bar Mitzvah Attack)。 直到2015年3月,还有约30%的网络通信是由RC4进行保护的。通过“受戒礼”攻击,攻击者可以在特定环境下只通过嗅探监听就可以还原采用RC4保护的加密信息中的纯文本,导致账户、密码、信用卡信息等重要敏感信息暴露,并且可以通过中间人(Man-in-the-middle)进行会话劫持。 攻击方法和模式 攻击者嗅探监听大量的SSL链接,可以判断第一个加密消息包含SSL的完成消息和HTTP请求,都是具有可预测的信息的。然后等待一个不变性弱密钥的链接到来,当获取到一个弱密钥链接时候就可以提取出LBS。当弱密钥使用的时候,明文和密钥会进行异或,攻击者可以看到生成的密文模式。 攻击者同样也进行DNS投毒,将所有的链接链接到一个恶意的主机,主机进行中间人攻击,能够有效地进行大量用户的嗅探监听和会话劫持。 漏洞原理和细节 根据

Python3 安装 Crypto 三方库

醉酒当歌 提交于 2020-01-16 22:47:15
最近在做小程序登录认证,需要拿到用户的手机号,但是微信 API 返回的手机号码是加密后过的,需要使用 AES 进行解密 安装 pip install pycryptodome 安装完后导包 from Crypto.Cipher import AES 发现竟然有错 ImportError: No module named 'Crypto' 最后才发现,我需要在 python 环境中改下包的名字, cd /Users/zhangyi/.virtualenvs/site_service/lib/python3.8/site-packages 在这个目录你找到这个目录的名字 crypto ,将这个目录的名字改为 Crypto 这样就能成功的导入了。 但是这样会有一个问题,就是必须在测试和线上也需要改,这样是很忌讳的,所以我们用另外一种方法 安装另外一个三方库 pip install pycryptodomex 导入包 from Cryptodome.Cipher import AES 这样就可以完美解决了 来源: CSDN 作者: 极客点儿 链接: https://blog.csdn.net/yilovexing/article/details/104011199

openssl pem转cer文件 并用base64编码解码过程

烂漫一生 提交于 2020-01-09 18:51:28
#!/bin/bash #pem转cer openssl x509 -outform der -in 3324861__ksjgs.com.pem -out ksjgs-bak.cer #aes 128加密并用base64编码 openssl enc -aes-128-cbc -in ksjgs-bak.cer -out ksjgs-bak-enc.log -a #解密 #base64解码 base64 -d ksjgs-bak-enc.log > ksjgs-bak-unbase64.log #aes 128解密 openssl enc -d -aes-128-cbc -in ksjgs-bak-unbase64.log -out ksjgs-bak-unbase64-jiemi.log #对比证书文件 md5sum ksjgs-bak.cer md5sum ksjgs-bak-unbase64-jiemi.log 来源: 51CTO 作者: 小白的希望 链接: https://blog.51cto.com/haoyonghui/2465594

java 安全加密api(cipher,signature,mac...)

南笙酒味 提交于 2020-01-09 17:01:58
前言 本文主要讲解常用加密算法,消息摘要,二进制字符变换等的java实现,对于加密算法本身的原理只会做简单的介绍,详细的原理可百度。 相关概念 加密 加密是指将可读取的明文作为输入,通过特定的变换操作得到不易读取的输出(通常是二进制序列),目前常用的加密算法包括 对称加密的AES/DES,非对称加密的RSA/DSA/EC,加密很重要的一点就是解密,无论多复杂的数学变换,一定可以通过相应的逆变换得到原始输入,这是的加密行为才有意义。 hash(哈希变换) hash值又称散列值或者消息摘要,对输入的字符串或者二进制序列通过一定的变换得到固定长度的输出,它是一个不可逆的过程,理解这个不可逆的过程可以从数学中的求余函数理解,例如:11/10 = 1 … 1余数是1,以除以10作为变换,余数1作为输出,不可能通过余数是1得到被除数是11,因为有可能是21、31、41。。。。。。等等,同时和求余类似,hash碰撞指的就是不同的输入可能得到相同的输出。当然对于真正的hash变换,不可能像求余过程如此简单,但是这个不可逆过程的原理是类似的。常用的hash变换有MD5/SHA1/HmacSHA1/HmacMD5…等,hash变换的目的并不是让输入不可读取,而是让输入不可改变。 字节变换 文件通常会分为文本文件和二进制文件,文本文件通过(Unicode/UTF-8/ASCII)编码之后是可以读取的

看完这篇文章,我奶奶都懂了https的原理

百般思念 提交于 2020-01-04 03:34:43
  前言   前段时间看到一篇文章讲如何保证API调用时数据的安全性(传送门: https://blog.csdn.net/ityouknow/article/details/80603617 ),文中讲到利用RSA来加密传输AES的秘钥,用AES来加密数据,并提供如下思路:   说人话就是前、后端各自生成自己的RSA秘钥对(公钥、私钥),然后交换公钥(后端给前端的是正常的明文公钥,前端给后端的是用后端公钥加密后的密文公钥;PS:其实我觉得直接交换两个明文公钥就行了),后端生成AES的 明文key ,用明文key进行AES加密得到 密文数据 ,用前端的公钥进行RSA加密得到 密文key ,API交互时 并将密文数据与密文key进行传输,前端用自己的私钥进行RAS解密的到明文key,用明文key进行AES解密得到明文数据;前端给后端发送数据时同理,这样一来,传输的数据都是密文,且只有秘钥才能解密   可惜这篇博客只提供了思路,但并没有具体的代码,我们在网上查找一下资料,开始生撸代码,实现一个前后端API交互数据加密——AES与RSA混合加密,并应用到项目中   后端加、解密   从网上查找工具类,再进行改造   先引入Base64工具类 <!-- Base64编码需要 --> <dependency> <groupId>org.apache.directory.studio<