首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sha256,Sha384,Sha512不是在WIndows XP中工作吗?

Sha256,Sha384,Sha512不是在WIndows XP中工作吗?
EN

Stack Overflow用户
提问于 2017-09-01 11:37:53
回答 2查看 2K关注 0票数 1

以下代码在windows 8.1和10中运行良好,并在windows xp sp3中进行了测试--它不工作并返回空值,在sha1中也有相同的问题,但是MD5运行良好,并获得返回输出,但其他人不能,windows xp sp3支持沙校验和函数还是需要任何特殊代码(对不起,英语很差)

代码语言:javascript
复制
    Public Function GetSha512Hash()
    Dim _flexe$ = ""
    Dim _result$ = ""
    Try
        _flexe$ = IO.Path.Combine(Application.ExecutablePath)
        Using _sha512 As New System.Security.Cryptography.SHA512CryptoServiceProvider
            Using stream = File.OpenRead(_flexe$)
                Dim _hash = _sha512.ComputeHash(stream)
                _result$ = BitConverter.ToString(_hash).Replace("-", String.Empty)
                Trace.WriteLine(String.Format("{0}", _result$))
                Return _result$
            End Using
        End Using
    Catch ex As Exception
        Trace.WriteLine(Err.Description)
        Me.PEx = ex
        Return _result$
    End Try
End Function

'SHa384
Public Function GetSha384Hash()
    Dim _flexe$ = ""
    Dim _result$ = ""
    Try
        _flexe$ = IO.Path.Combine(Application.ExecutablePath)
        Using _sha512 As New System.Security.Cryptography.SHA384CryptoServiceProvider
            Using stream = File.OpenRead(_flexe$)
                Dim _hash = _sha512.ComputeHash(stream)
                _result$ = BitConverter.ToString(_hash).Replace("-", String.Empty)
                Trace.WriteLine(String.Format("{0}", _result$))
                Return _result$
            End Using
        End Using
    Catch ex As Exception
        Trace.WriteLine(Err.Description)
        Me.PEx = ex
        Return _result$
    End Try
End Function
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-01 11:43:57

在阅读了一些文档之后,如果使用sha256/384/512加密,windows XP SP3似乎无法获得证书。(链接)

请注意,Windows是微软更长期支持的,这意味着该平台的开发可能是危险

如果你想继续发展的话。您可以尝试在页面上找到修补程序,这涉及安装2009年发布的官方Microsoft。

票数 1
EN

Stack Overflow用户

发布于 2017-09-01 13:27:06

最后我得到了一些关于SHA1、SHA1CryptoServiceProvider、SHA1Managed和SHA1Cng类在.NET中的区别的信息..。

  1. SHA1:这是抽象类。SHA1的所有其他实现(SHA1CryptoServiceProvider、SHA1Managed和SHA1Cng)都实现了这个抽象类。要创建concreate SHA1类,请使用SHA1.Create()。默认情况下,SHA1.Create()返回SHA1CryptoServiceProvider,这是可配置的。配置默认SHA1实现:http://msdn.microsoft.com/en-us/library/693aff9y.aspx
  2. SHA1CryptoServiceProvider:这是非托管CryptoAPI(CAPI)的包装器。这是联邦信息处理标准(FIPS)认证的。
  3. SHA1Managed:这是使用托管代码实现SHA1的完整实现。这是完全管理,但没有FIPS认证,可能是较慢。
  4. SHA1Cng:这是非托管密码下一代的包装器。这些是Microsoft使用Windows 2008/Windows或更新的加密算法的更新实现。这也是FIPS认证的。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45999464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档