1、使用摘要的数字签名认证,其算法是不是统一的
2、如果是,是否可以提供相关的摘要算法
500分相送:)请高手观察这样一个认证串:
LoginBroadVali&Succeed=Y&UserId=1000864428&UserName=ad50243896&Type=adsl&Date=07221012354831&Msg=000&Signature=j%2fsyc%2fOMBvw5%2fDehU5E%2byQQLL1xvPIFwB%2bXQJLubza9lygDOg1yod5QUjT61GUCLnz%2bTW%2bV9RQvy%2bbdCCn1n8t%2bHA2AzMbJ7msAHKXxc%2fWjlrdR20TkquIFKRAanw4RhxERrXsg5qsT0P3EjA2Z16gl7%2fZZfoClECQw170UsAkw%3dSignature后面的摘要验证的算法是否未公开的标准算法,当然了,还需要密钥文件支持!

解决方案 »

  1.   

    参见http://www.cs.auckland.ac.nz/~pgut001/pubs/authenticode.txt
      

  2.   

    http://dev.csdn.net/develop/article/27/27810.shtm
      

  3.   

    算法并不统一:使用摘要的数字签名算法上分为两个部分.
    一是摘要算法:目前有很多种算法,比较流行的有 MD5 SHA-1.
    二是签名算法:都是公钥体制,也有很多种,如RSA, ELGMA, 椭圆曲线等.
    两种算法可以任意组合.
      

  4.   

    感谢楼上兄弟提供的资料我是要解决一个问题,供应商提供一个数字签名的验证com,是用Java写的
    我的程序是用VC++写的,在调用该组件的验证功能时,不稳定,有的机器运行正常,有的出错
    如果摘要验证的算法是统一的(有限的几种)
    我考虑将验证的函数直接写入我的程序MD5,SHA,MAC等摘要(Digest,也称为Hash,散列)算法,这几种算法是不是标准的?
    求相关资料,学习...
      

  5.   

    网络上关于 MD5,SHA,MAC等摘要(Digest,也称为Hash,散列)算法 的资料太多了我不是研究这个的 所以太专业的也说不出什么 只是用过而已http://www.flagware.net/ReadNews.asp?NewsID=139
    http://www.supcode.com/Article/html/4/50/2005/03/08/039591935999.shtml
      

  6.   

    RSA 
    -适用于数字签名和密钥交换。Rivest-Shamir-Adleman (RSA) 加密算法是目前应用最广泛的公钥加密算法,特别适用于通过 Internet 传送的数据。这种算法以它的三位发明者的名字命名:Ron Rivest、Adi Shamir 和 Leonard Adleman。RSA 算法的安全性基于分解大数字时的困难(就计算机处理能力和处理时间而言)。在常用的公钥算法中,RSA 与众不同,它能够进行数字签名和密钥交换运算。 DSA-
    仅适用于数字签名。数字签名算法 (Digital Signature Algorithm, DSA) 由美国国家安全署 (United States National Security Agency, NSA) 发明,已经由美国国家标准与技术协会 (National Institute of Standards and Technology, NIST) 收录到联邦信息处理标准 (Federal Information Processing Standard, FIPS) 之中,作为数字签名的标准。DSA 算法的安全性源自计算离散算法的困难。这种算法仅用于数字签名运算(不适用于数据加密)。 MD5。 
    MD5 是由 Ron Rivest 设计的可产生一个 128 位的散列值的散列算法。MD5设计经过优化以用于Intel处理器。这种算法的基本原理已经泄露,这就是为什么它不太受欢迎的原因。 
    SHA-1
    与 DSA 公钥算法相似,安全散列算法1(SHA-1)也是由NSA设计的,并由NIST将其收录到 FIPS 中,作为散列数据的标准。它可产生一个 160 位的散列值。SHA-1是流行的用于创建数字签名的单向散列算法。 
      

  7.   

    数字签名:结合使用公钥与散列算法 可以结合使用公钥技术与散列算法来创建数字签名。数字签名可用作数据完整性检查并提供拥有私钥的凭据。签署和验证数据(由启用PKI的应用程序如Microsoft Outlook完成)的步骤如下: 发件人将一种散列算法应用于数据,并生成一个散列值。 发件人使用私钥将散列值转换为数字签名。 然后,发件人将数据、签名及发件人的证书发给收件人。 收件人将该散列算法应用于接收到的数据,并生成一个散列值。 收件人使用发件人的公钥和新生成的散列值验证签名。 对用户而言这一过程是透明的。 散列算法处理数据的速度比公钥算法快得多。散列数据还缩短了要签名的数据的长度,因而加快了签名过程。当创建或验证签名时,公钥算法必须且只需转换散列值(128或160位的数据)。创建签名和验证签名的详细步骤取决于所采用的公钥算法。