aes加密

AES加解密

℡╲_俬逩灬. 提交于 2020-01-04 03:29:16
一个程序最忌讳的就是把自己的数据暴露给其他人,一个加解密可以让你感觉安全性好一些 直接上代码 一个加密类 using System; using System.IO; using System.Security.Cryptography; using System.Text; namespace Common { public class AECHelper { const string AES_IV = "";//16位 static string key = ""; /// <summary> /// AES加密算法 /// </summary> /// <param name="input">明文字符串</param> /// <param name="key">密钥(32位)</param> /// <returns>字符串</returns> public static string EncryptByAES(string input) { byte[] keyBytes = Encoding.UTF8.GetBytes(key.Substring(0, 32)); using (AesCryptoServiceProvider aesAlg = new AesCryptoServiceProvider()) { aesAlg.Key = keyBytes; aesAlg

某建筑市场监管平台

无人久伴 提交于 2020-01-04 02:22:00
目标网站 aHR0cDovL2p6c2MubW9odXJkLmdvdi5jbi9kYXRhL3Byb2plY3Q= 发现可疑接口 发现关键字 list pg pgsz 发现是报文加密 开始去主页面寻找 打上断点 走位 走位 貌似是入口 找到了 发现关键字 AES CBC 直接百度搜索AES JS 解密 改写他的关键js 结束 如有侵权请联系本人 邮箱: zjw505104341@163.com QQ: 505104341 github: https://github.com/zjw505104341 来源: CSDN 作者: hobo_ 链接: https://blog.csdn.net/hobo_/article/details/103817379

mysql数据库字段加密函数

三世轮回 提交于 2019-12-24 13:47:51
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> php程序中有内置的aes算法函数可以完成加密和解密,但aes算法有个特点:使用同样的明文和秘钥加密得到的结果每次都不一样,这是它的优点,但在做密文字符串比较的时候就会比较麻烦。 加密:先通过AES加密得到一个二进制的密文,然后把密文用HEX函数转换成16进制,最终得到的字符串长度为64位,就可以插入数据表中了 HEX(AES_ENCRYPT('15','abcdefgh')) 解密:这就要反其道而行,先转回到二进制,然后再解密 AES_DECRYPT(UNHEX(money),'abcdefgh') 表中字段被加密后,仍然可以做各种查询操作: /*在加密字段上使用统计函数*/ SELECT SUM(AES_DECRYPT(UNHEX(money),'abcdefgh')) FROM test; /*加密字段作为比较条件查询*/ SELECT * FROM test WHERE AES_DECRYPT(UNHEX(money),'abcdefgh') = 50; /*查询时获取解密后的明文*/ SELECT AES_DECRYPT(UNHEX(money),'abcdefgh') AS money FROM test; 应用场景:用户注册信息中的密码,比较敏感的财务数据等 来源: oschina 链接:

AES 加密/解密(与Java互通)

女生的网名这么多〃 提交于 2019-12-17 11:32:23
以C#的 AEC加密解密为例 加密: private static string EncryptBase(string text, string password, string iv) { RijndaelManaged rijndaelCipher = new RijndaelManaged(); rijndaelCipher.Mode = CipherMode.CBC; //rijndaelCipher.Padding = PaddingMode.Zeros; //0补位 rijndaelCipher.KeySize = 128; rijndaelCipher.BlockSize = 128; byte[] pwdBytes = System.Text.Encoding.UTF8.GetBytes(password); byte[] keyBytes = new byte[16]; int len = pwdBytes.Length; if (len > keyBytes.Length) len = keyBytes.Length; System.Array.Copy(pwdBytes, keyBytes, len); rijndaelCipher.Key = keyBytes; byte[] ivBytes = System.Text.Encoding.UTF8

Java MD5,base64,AES加密工具类

拟墨画扇 提交于 2019-12-15 17:30:06
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> import java.io.UnsupportedEncodingException; import java.math.BigInteger; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import org.apache.commons.lang.StringUtils; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; /** ClassName: EncryptUtil

iOS加密总结

☆樱花仙子☆ 提交于 2019-12-10 00:12:12
加密一般分为 对称加密和非对称加密。 —、对称加密 对称密码学分成分组密码和序列密码(流密码)两部分,他们差异较大易于区分。 序列密码 序列密码单独加密每个位。它是通过将密钥序列中的每个位于每个明文位相加实现的。同步序列密码的密码序列仅仅取决于密钥,而异步序列密码的密钥序列则取决于密钥和密文。密码反馈(cipher Feedback,CFB)模式是异步序列密码 分组密码 分组密码每次使用相同的密钥加密整个明文位分组。这意味着给定分组内任何明文的加密都要依赖于与它同在一个分组内的其他所有的明文位。实际中,绝大多数分组密码的分组长度要么是128位(16字节),比如高级加密标准(AES),要么是64位(8字节),比如数据加密标准(DES)或三重DES(3DES)算法。 二、非对称加密 非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey) 公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密 如RSA ECC DSA。 非对称密码体制的特点:算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快 对称密码体制中只有一种密钥,并且是非公开的,如果要解密就得让对方知道密钥。所以保证其安全性就是保证密钥的安全

AES加密时抛出java.security.InvalidKeyException: Illegal key size or default parameters

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-09 09:29:25
使用AES加密时,当密钥大于128时,代码会抛出java.security.InvalidKeyException: Illegal key size or default parameters Illegal key size or default parameters是指密钥长度是受限制的,java运行时环境读到的是受限的policy文件。文件位于${java_home}/jre/lib/security 这种限制是因为美国对软件出口的控制。 解决办法: 去掉这种限制需要下载Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files.网址如下。 下载包的readme.txt 有安装说明。就是替换${java_home}/jre/lib/security/ 下面的local_policy.jar和US_export_policy.jar jdk 5: http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-java-plat-419418.html#jce_policy-1.5.0-oth-JPR jdk6: http://www.oracle.com

2019-2020-1 20175304 20175303 20175327 20175335 实验五 通讯协议设计

混江龙づ霸主 提交于 2019-12-08 23:34:33
2019-2020-1 20175304 20175303 20175327 20175335 实验五 通讯协议设计 一、实验内容 通讯协议设计-1 1.在Ubuntu中完成 http://www.cnblogs.com/rocedu/p/5087623.html 中的作业 2.提交运行结果截图 通讯协议设计-2 1.在Ubuntu中实现对实验二中的“wc服务器”通过混合密码系统进行防护 2.提交测试截图 通讯协议设计-3 1 运行实验箱中,ARM调用Z32算法的实验,提交实验截图 2 用Z32的国密算法重新改写“wc服务器”的混合密码系统防护,提交运行截图 二、实验过程 通讯协议设计-1 1.OpenSSL简介 OpenSSL是一个SSL协议的开源实现,采用C语言作为开发语言,具备了跨平台的能力,支持Unix/Linux、Windows、Mac OS等多种平台。 2.OpenSSL整个软件包大概可以分成三个主要的功能部分: 密码算法库 SSL协议库 应用程序 OpenSSL源码的目录结构也是围绕这三个功能部分进行规划的。 密码算法库是一个强大完整的密码算法库,它是OpenSSL的基础部分,也是很值得一般密码安全技术人员研究的部分,它实现了目前大部分主流的密码算法和标准。主要包括对称算法、非对称算法、散列算法、数字签名和认证、X509数字证书标准、PKCS12、PKCS7等标准

go-gin-api 路由中间件 - 签名验证(七)

大兔子大兔子 提交于 2019-12-04 02:05:37
概览 首先同步下项目概况: 上篇文章分享了,路由中间件 - Jaeger 链路追踪(实战篇),文章反响真是出乎意料, 「Go中国」 公众号也转发了,有很多朋友加我好友交流,直呼我大神,其实我哪是什么大神,只不过在本地实践了而已,对于 Go 语言的使用,我还是个新人,在这里感谢大家的厚爱! 这篇文章咱们分享:路由中间件 - 签名验证。 为什么使用签名验证? 这个就不用多说了吧,主要是为了保证接口安全和识别调用方身份,基于这两点,咱们一起设计下签名。 调用方需要申请 App Key 和 App Secret。 App Key 用来识别调用方身份。 App Secret 用来加密生成签名使用。 当然生成的签名还需要满足以下几点: 可变性:每次的签名必须是不一样的。 时效性:每次请求的时效性,过期作废。 唯一性:每次的签名是唯一的。 完整性:能够对传入数据进行验证,防止篡改。 举个例子: /api?param_1=xxx&param_2=xxx,其中 param_1 和 param_2 是两个参数。 如果增加了签名验证,需要再传递几个参数: ak 表示App Key,用来识别调用方身份。 ts 表示时间戳,用来验证接口的时效性。 sn 表示签名加密串,用来验证数据的完整性,防止数据篡改。 sn 是通过 App Secret 和 传递的参数 进行加密的。 最终传递的参数如下: /api

FireDAC 下的 Sqlite [6] - 加密.

左心房为你撑大大i 提交于 2019-12-03 17:09:07
主要就是设置 TFDConnection 的两个链接参数: Password, NewPassword, 非常简单. const dbPath = 'C:\Temp\SQLiteTest.sdb'; {建立加密数据库, 密码是 mm123} procedure TForm1.FormCreate(Sender: TObject); const strTable = 'CREATE TABLE MyTable(Id integer, Name string(10), Age byte)'; //Id, Name, Age 三个字段 begin if FileExists(dbPath) then DeleteFile(dbPath); FDConnection1.Params.Add('DriverID=SQLite'); FDConnection1.Params.Add('Database=' + dbPath); FDConnection1.Params.Add('Password=mm123'); //相同与 Password=aes-256:mm123; aes-256 是默认的加密算法; //还有: aes-128,aes-192,aes-256, aes-ctr-128,aes-ctr-192,aes-ctr-256, aes-ecb-128,aes-ecb-192