![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
RSA / DES / MD5 标准算法
阿发你好
全套Java/C语言系列教程
展开
-
RSA - SSL中证书的使用
HTTPS是基于SSL的HTTP,底层选用安全的交互机制。每次交互都是加密的。SSL使用40 位关键字作为RC4流加密算法 ,这对于商业信息的加密是合适的。通常的RSA加密是1024bit,强度很高,但也很慢。(1) 服务器向客户端发送一个证书(2)客户端验证该证书是否合法(来自权威CA),大多数情况下会提示该证书无法认证,因为要向CA申请证书是要花钱的。银行网站一般会自己原创 2012-06-29 17:42:04 · 1955 阅读 · 0 评论 -
AES - Java编程: 使用AES
AES每次加密的block长度为16字节,密码也是16个字节。JAVA中该算法名为 AEStry{ String password = "0123456789abcdef"; byte[] b = password.getBytes(); SecretKeySpec sks = new SecretKeySpec(b, "AES"); Ciphe原创 2012-07-02 16:22:28 · 4488 阅读 · 0 评论 -
3DES - Java编程: 使用3Des(Triple-DES)
3DES默认为ECB加密, JAVA中该算法名为 DESede,每次加密8字节try{ String password = "123456780000111122223333"; byte[] b = password.getBytes(); // 必须是>=24字节的数组,否则返回InvalidKeyException DESedeKeySpe原创 2012-07-02 16:21:06 · 2600 阅读 · 0 评论 -
加密与解密
加解密是码侬们时而会遇到的一个问题。怎么加密呢?为方便解说,p(plain)代表原文, c(cipher)代表密文, k(key)代表密码。 1. c = f(p)最初的C教程会告诉我们,对数据进行简单的移位变换得到一组新的数据,也可以称为加密。 例如, 要存储一串文字"shaofa"到文件里,假设这个字符串是敏感信息,我们要对其进行加密后再存储。这是一个把p加密为c的过程,记原创 2011-10-30 16:04:47 · 1118 阅读 · 0 评论 -
DES - Java编程: 使用DES加密/解密
DES是一种对称加密方法,这里演示其ECB加密范例一try{ // 创建key String password = "12345678"; byte[] b = password.getBytes(); DESKeySpec dks = new DESKeySpec(b); SecretKeyFactory keyFact原创 2012-07-02 16:19:17 · 1133 阅读 · 0 评论 -
RSA - Java编程: 用Cipher进行RSA加解密
无论用什么方式,解取一对密钥:私钥privateKey、公钥publicKeypublic static void Test2() throws Exception{ // 原文 byte[]plainText = "shaofa".getBytes(); //加密工具 Cipher c1 =Cipher.getInstance("RSA");原创 2012-06-29 17:44:06 · 7542 阅读 · 0 评论 -
RSA - Java编程: 从KeyStore中获取私钥与证书
用keytool可以生成JSK类型的keystore,其中可以存放很多个Key(私钥和对应的证书)。import java.io.*;import java.security.*;import java.security.cert.*;import java.util.*;import java.math.*;import sun.security.x509.*;import原创 2012-06-29 17:43:21 · 11139 阅读 · 0 评论 -
RSA - Java keytool的使用
keytool的使用keytool程序由JDK提供,可以生成、查看证书和key.而keystore是key的容器,可以容纳多个key及相关信息。每一条key由一个别名alias引用。可以把keystore中的key导出为证书文件*.cer。显然,用keytool生成的*.cer是未经CA签名的证书。keystore中的数字证书和cert有什么区别?- keystore中含有私钥原创 2012-06-29 17:42:40 · 3342 阅读 · 0 评论 -
RSA - 与DES结合使用实现动态加密
RSA可以用于加密,其加密强度很高,被人攻克的可能性极小。但是其加密速度很慢,如果对一段长数据进行加密是不现实的。因为无论加密还是解密都需要很长时间。所以通常是先用对称加密算法(DES, AES等)对正文加密,而DES,AES的密码往往是16字节或24字节,是比较短的。在发送时,把DES密码用RSA加密一下,连同正文一同发给对方。对方接收之后,先用RSA密钥把DES密码给还原出来,原创 2012-06-29 17:41:36 · 3256 阅读 · 0 评论 -
RSA - 证书与CA
CA 证书发放机构【百度 “数字证书” 】1. 发放机构向CA申请一张证书,证书于向用户证书自己的身份。CA在证书的末尾会添加一段签名,让用证明该cert是CA发的。过程呢,就是CA用自己的私钥对这一段证书进行签名。CA本身会出一个证书,叫做根证书,把公钥放在里面。2. 校验客户端在接收到一个证书cert时,首先要做的工作是检验该证书是否有效。也就是说,看这原创 2012-06-29 17:41:06 · 8094 阅读 · 0 评论 -
RSA - 数字签名
数字签名(DigitalSignature)技术是不对称加密算法的典型应用。数字签名的应用过程是,数据源发送方使用自己的私钥对数据校验和或其他与数据内容有关的变量进行加密处理,完成对数据的合法“签名”,数据接收方则利用对方的公钥来解读收到的“数字签名”,并将解读结果用于对数据完整性的检验,以确认签名的合法性。签名方:发送 " 正文 " + "签名" 签名:(1)对正文原创 2012-06-29 17:40:11 · 1310 阅读 · 0 评论 -
RSA - Java编程:生成RSA密钥对
用KeyPairGenerator 可以在代码里生成公钥/私钥对。生成密钥是一个耗CPU的工作。public static void Test3() throws Exception{ //生成密钥对 KeyPairGenerator keyGen =KeyPairGenerator.getInstance("RSA"); keyGen.initialize(102原创 2012-06-29 17:44:42 · 10084 阅读 · 2 评论 -
一种用HMAC-SHA1生成注册码的方法
其实注册码的生成算法可以随意的,有很多种,现在就介绍一种简单的算法:1. 取得机器码对于手机app来说,一般以IMEI作为机器码,其为15个字节的字符串2. 作HMAC-SHA1 运算此算法是集摘要功能(SHA1)和加密功能(HMAC)为一体的算法。用于对任意长度的字串,给定一个密码作为参数,输出20个字节的结果。用公式表示为:result = HMAC-SH原创 2013-12-25 11:02:07 · 3821 阅读 · 0 评论