问题描述
publicstaticstringTest(stringparam){stringresult=string.Empty;byte[]StrRes=Encoding.GetEncoding("iso-8859-1").GetBytes(param);HashAlgorithmiSHA=newSHA1CryptoServiceProvider();StrRes=iSHA.ComputeHash(StrRes);result=Convert.ToBase64String(StrRes);returnresult;}
待加密字符串:123java结果:QL0AFWMIX8NRZTKeof9cXsvb这个方法:QL0AFWMIX8NRZTKeof9cXsvbvu8=结尾差了几个字符这个要怎么处理?
解决方案
解决方案二:
这个问题是加密导致的还是base64转换的时候导致的?
解决方案三:
Microsoft安全通报(2880823)Microsoft根证书计划弃用SHA-1哈希算法发布时间:2013年11月12日版本:1.0一般信息摘要Microsoft宣布对Microsoft根证书计划进行策略更改。新策略不再允许根证书颁发机构颁发使用SHA-1哈希算法的X.509证书用于SSL目的,在2016年1月1日之后将对签名进行编码。在数字证书中使用SHA-1哈希算法可能允许攻击者欺骗内容、执行网页仿冒攻击或执行中间人攻击。建议:Microsoft建议证书颁发机构不再使用SHA-1哈希算法签署新生成的证书并开始迁移到SHA-2。Microsoft还建议客户尽早将SHA-1证书替换为SHA-2证书。有关详细信息,请参阅此通报的“建议措施”部分。
解决方案四:
您这ctrl+v真犀利。。。
解决方案五:
先导入importjava.security.MessageDigest;和importsun.misc.BASE64Encoder;然后用下面的方法就可以了,楼主的有可能是工具类补齐字符串的时候丢掉了.//密码加密,先sha1,然后base64,即base64(sha1("pass"))privateStringencodePassword(Stringpass)throwsException{StringencPass=pass;MessageDigestsha1=MessageDigest.getInstance("SHA1");byte[]sha1Passbytes=sha1.digest(encPass.getBytes());Stringbase64Sha1Passstr="";if(sha1Passbytes!=null){base64Sha1Passstr=newBASE64Encoder().encode(sha1Passbytes);}returnbase64Sha1Passstr;}
解决方案六:
http://blog.csdn.net/zhangfanfly/article/details/48971443我前一阵子做的base64sh1加密,希望帮到你
解决方案七:
首先确认下,在Java里的结果是QL0AFWMIX8NRZTKeof9cXsvb其次,对比下在2中语言中的编码方式是一致的
解决方案八:
显然你给的java的结果是错误的