`
xudongcsharp
  • 浏览: 467507 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

密码学-加密解密 加签验签

    博客分类:
  • Java
 
阅读更多
RSA:
1. 加签:用私钥加签,对方用公钥验签(防抵赖,私钥只有自己有!)
2. 加密:用对方公钥加密,对方用对应私钥解密(加密)

MD5:
1. 原文参数treeMap排序
2. 传参时需传:
原文,
加签:MD5(原文+私钥)=sign
对方验签:用同样的方式加签验证是否相等。

注:
淘宝、支付公司一般都使用MD5加签,淘宝传的是商户ID,新浪支付传的是秘钥!这样签名只能起到防篡改的作用,并不能起到防抵赖的作用。


国家将信息安全划分为三个等级:核密、普密和商密。其中核密最高,普密次之,商密最低



/**
     * MD验签字符串
     *
     * @param text
     *            需要签名的字符串
     * @param sign
     *            签名结果
     * @param key
     *            密钥
     * @param input_charset
     *            编码格式
     * @return 签名结果
     */
    public static boolean verify(String text, String sign, String key, String charset) {
        text = text + key;
        String mysign = DigestUtils.md5Hex(getContentBytes(text, charset));
        if (mysign.equals(sign)) {
            return true;
        } else {
            return false;
        }
    }



1、私钥加密
私钥加密又称为对称加密,因为同一密钥既用于加密又用于解密。私钥加密算法非常快(与公钥算法相比),特别适用于对较大的数据流执行加密转换。
DES
RC2
Rijndael(AES)
3DES
2、公钥加密和数字签名
公 钥加密使用一个必须对未经授权的用户保密的私钥和一个可以对任何人公开的公钥。用公钥加密的数据只能用私钥解密,而用私钥签名的数据只能用公钥验证。公钥 可以被任何人使用;该密钥用于加密要发送到私钥持有者的数据。两个密钥对于通信会话都是唯一的。公钥加密算法也称为不对称算法,原因是需要用一个密钥加密 数据而需要用另一个密钥来解密数据。
DSA
RSA
3、常用密钥算法
密钥算法用来对敏感数据、摘要、签名等信息进行加密,常用的密钥算法包括:
DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合;
3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高;
RC2和 RC4:用变长密钥对大量数据进行加密,比 DES 快;
IDEA(International Data Encryption Algorithm)国际数据加密算法,使用 128 位密钥提供非常强的安全性;
RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件快的长度也是可变的;
DSA(Digital Signature Algorithm):数字签名算法,是一种标准的 DSS(数字签名标准);
AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高,目前 AES 标准的一个实现是 Rijndael 算法;
BLOWFISH,它使用变长的密钥,长度可达448位,运行速度很快;
其它算法,如ElGamal、Deffie-Hellman、新型椭圆曲线算法ECC等。
分享到:
评论

相关推荐

    SM2&SM3;&SM4;国密算法Java实现

    我自己按照国密文档通过Java实现SM2密码算法加密/解密、签名验签,SM3密码杂凑算法,SM4分组密码算法ECB、CBC模式加密/解密。 经过详尽的测试过后没有发现问题,但建议大家在使用时仍进行验证。若有问题请及时反馈,...

    国密SM2/SM3/SM4/SM9算法及国密证书签发工具

    4、SM9算法:产生KGC密钥对、产生用户私钥、密钥封装与解封、加密解密、签名验签; 二、支持国密证书 1、根证书、子证书签发; 2、证书签发者、使用者、有效期可自定义; 3、产生标准P10、封装成P7格式的P10。 三、...

    SM2、SM3、SM4国密算法Java实现(含详细测试代码)

    按照国密文档通过Java实现SM2密码算法加密/解密、签名验签,SM3密码杂凑算法,SM4分组密码算法ECB、CBC模式加密/解密。 经过详尽的测试过后没有发现问题,但建议大家在使用时仍进行验证。若有问题请及时反馈,期待和...

    公钥密码学,RSA,加密与签名原理

    详细介绍了RSA算法基于的数据难题,涉及的加解密算法、签名和签名验证算法、密码攻击方法、安全使用要求等

    SM2&SM3&SM4国密算法Java实现(含详细测试代码)

    我自己按照国密文档通过Java实现SM2密码算法加密/解密、签名验签,SM3密码杂凑算法,SM4分组密码算法ECB、CBC模式加密/解密。 经过详尽的测试过后没有发现问题,但建议大家在使用时仍进行验证。若有问题请及时反馈,...

    基于多素数RSA加解密算法实现,以及中国剩余定理来解密

    内容包括: 传统RSA实现: ...5、IRSA:改进的RSA算法库,实现了基于多素数的指定数位的密钥对,RSA加密,RSA解密,基于中国剩余定理的RSA解密,签名,验签。 6、IRSAtest.py 使用改进RSA算法库的例子。

    SM2ANDSM3ANDSM4国密算法Java实现(含详细测试代码).zip

    按照国密文档通过Java实现SM2密码算法加密/解密、签名验签,SM3密码杂凑算法,SM4分组密码算法ECB、CBC模式加密/解密。 经过详尽的测试过后没有发现问题,但建议大家在使用时仍进行验证。若有问题请及时反馈,期待和...

Global site tag (gtag.js) - Google Analytics