`
xudongcsharp
  • 浏览: 476910 次
  • 性别: 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等。
分享到:
评论

相关推荐

    RSA sha-256加密解密,加签验签工具类

    RSA是一种非对称加密算法,它是公钥密码学的基础,由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出。该算法基于大数因子分解的困难性,使得只有拥有特定密钥的人才能解密信息。SHA-256则是SHA-2(安全哈希...

    C#SM2加密-解密-签名-验签源码+Demo已与JAVA联调

    SM2算法是一种基于椭圆曲线密码学(ECC)的公钥密码算法,由中国商用密码行业协会提出,主要用于确保数据的安全性和完整性。它包含了对称加密、非对称加密、数字签名等功能,特别适合于移动设备和物联网设备,因为...

    RSA加密解密、签名验签Demo

    RSA加密算法是公钥密码学领域的一个重要概念,由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出,因此得名RSA。它是一种非对称加密技术,广泛应用于网络安全、数据加密、数字签名等方面。在C#中实现RSA加密...

    加签加密解密验签demo

    本示例"加签加密解密验签demo"旨在演示如何实现这一过程,通常涉及对称加密、非对称加密和数字签名等技术。 首先,我们来看“加签”。这里的“加签”指的是数字签名,它是公钥密码学的一种应用。数字签名并非传统的...

    SM2加密解密、签名验签Delphi Lazarus版本源码

    本文将详细讲解基于MIRACL大数库实现的SM2加密解密与签名验签工具在Delphi 7中的应用。SM2是中国国家商用密码算法标准之一,它是一种基于椭圆曲线密码学(ECC)的非对称加密算法,主要用于确保数据传输的安全性和...

    ECC密钥生成、加密解密、签名验签工具

    ECC(椭圆曲线密码学)是一种现代的公钥加密技术,因其安全性高、效率优良而被广泛应用在网络安全、数字签名以及身份验证等领域。在这个项目中,开发者使用C语言和Visual Studio 2010创建了三个工具:ECC密钥生成器...

    国密算法SM2公私钥加解密及签名验签以及前端js sm-crypto

    其中,SM2算法是基于椭圆曲线密码学(ECC)的一种公钥加密算法,广泛应用于数字证书、数据加解密和数字签名等领域。本文将详细探讨SM2算法的原理、使用场景,以及在前端js中实现加解密和签名验签的方法,同时参考sm-...

    Python3加密解密库Crypto的RSA加解密和签名/验签实现方法实例

    ### Python3 加密解密库Crypto的RSA加解密与签名/验签实现方法实例 #### 一、引言 本篇文章重点介绍如何利用Python3中的`Crypto`库实现RSA算法的加密解密以及签名与验签功能。通过具体代码示例帮助读者理解并掌握...

    Java与.NET RSA加密解密(签名,验签)实例代码

    本实例代码着重于Java与.NET平台之间的RSA加密解密及签名验签操作,这对于跨平台的数据安全通信具有实际意义,例如与支付宝POS对接时。 1. **RSA算法基础**: RSA是一种基于大数因子分解困难性的公钥密码体制。它...

    Java实现 sm 2 3 4 加密解密签名验签工具包

    Java实现SM2、SM3和SM4加密解密签名验签工具包是针对我国自主设计的密码算法标准的编程实践。这些算法在信息安全领域扮演着关键角色,主要用于数据的加密、完整性保护以及身份验证。 首先,SM2算法是一种基于椭圆...

    Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加签验签

    本文将详细介绍如何使用Python 3.7及pycryptodome库进行AES和RSA加密解密以及加签验签操作。pycryptodome是一个强大的密码学库,提供了多种加密算法和签名机制。 首先,我们来看AES加密解密。AES(Advanced ...

    RSA加密签名验签工具

    RSA,全称为Rivest-Shamir-Adleman,是一种非对称加密算法,是公钥密码学领域的基石之一。这款工具集成了加密、解密、签名和验证签名的功能,极大地简化了使用RSA算法进行安全操作的过程。 RSA的核心原理在于一对...

    sm2加密,解密,签名,验签,sm3哈希,基于openssl的C语言实现

    综上所述,SM2加密解密、签名验签及SM3哈希在C语言环境下主要依赖OpenSSL库实现。理解这些概念和操作对于开发涉及中国密码标准的软件系统至关重要。开发者需要掌握ECC理论基础,熟悉OpenSSL API,同时遵循良好的编程...

    RSA体系 c++/java相互进行加签验签

    RSA(Rivest-Shamir-Adleman)是一种非对称...综上所述,理解并实现RSA的加签验签涉及密码学原理、加密库的使用、跨语言通信和安全实践。通过正确实现和适当地编码转换,可以在C++和Java之间无缝地进行加签验签操作。

    Delphi标准RSA加密,解密,签名.与C,Java,php等通用

    RSA是一种非对称加密算法,由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出,是现代密码学中的基石之一。这种算法基于大整数因子分解的困难性,用于保障数据的安全传输和认证。在Delphi编程环境中,可以实现...

    基于MIRACL(C语言密码库)的国密SM2签名验签以及加解密、SM3的加解密、SM4的加解密算法.zip

    首先,MIRACL是一个强大的开源密码库,支持多种加密算法,包括椭圆曲线密码学(ECC)。在中国,国密标准中的SM2算法就是基于ECC设计的非对称加密算法,用于数字签名和密钥交换。SM2算法的核心是使用椭圆曲线上的点运算...

    RSA非对称加密验签参考demo

    这个项目可能包含了生成和管理密钥对、加密解密数据以及验证数字签名的代码示例,帮助开发者理解并实现RSA的安全功能。通过分析和学习这个demo,开发者可以更好地掌握RSA算法的应用,为自己的应用程序提供安全的数据...

    xshuai-algorithmNation-master_java_foundx4s_pankzn_sm2加密解密_sm2_源

    SM2算法是基于椭圆曲线密码学(ECC)的一种公钥加密标准,主要在中国使用。它是由中国商用密码研究机构设计的,适用于数据加密、数字签名和密钥交换等多种场景。在Java中实现SM2算法,开发者通常会使用Java ...

Global site tag (gtag.js) - Google Analytics