private string HashPass(string Password) { HashAlgorithm algorithm = SHA384CryptoServiceProvider.Create(); byte[] bytePassword = algorithm.ComputeHash(Encoding.UTF8.GetBytes(Password)); return(Convert.ToBase64String(bytePassword)); }
/// <summary> /// Gets the alogrithm. /// </summary> /// <param name="method">The method.</param> /// <param name="hashName">Name of the hash algorithm.</param> /// <returns></returns> /// <exception cref="System.NotSupportedException"> /// </exception> private static HashAlgorithm GetHashAlogrithm(HashMethod method, string hashName = null) { if (hashName == null) { switch (method) { case HashMethod.MD5: return(MD5CryptoServiceProvider.Create()); case HashMethod.SHA1: return(SHA1CryptoServiceProvider.Create()); case HashMethod.SHA256: return(SHA256CryptoServiceProvider.Create()); case HashMethod.SHA384: return(SHA384CryptoServiceProvider.Create()); case HashMethod.SHA512: return(SHA512CryptoServiceProvider.Create()); case HashMethod.CRC32: return(new CRC32()); default: throw new NotSupportedException( string.Format("Method [{0}] is not supported.", method.ToString())); } } else { switch (method) { case HashMethod.MD5: return(MD5CryptoServiceProvider.Create(hashName)); case HashMethod.SHA1: return(SHA1CryptoServiceProvider.Create(hashName)); case HashMethod.SHA256: return(SHA256CryptoServiceProvider.Create(hashName)); case HashMethod.SHA384: return(SHA384CryptoServiceProvider.Create(hashName)); case HashMethod.SHA512: return(SHA512CryptoServiceProvider.Create(hashName)); default: throw new NotSupportedException( string.Format("Method [{0}] is not supported.", method.ToString())); } } }
/// <summary>Constructor</summary> /// <param name="param">ECParameters</param> /// <param name="isPrivate">bool</param> public JWS_ES384_Param(ECParameters param, bool isPrivate) { // Cng or OpenSsl if (os.Platform == PlatformID.Win32NT) { this.DigitalSignECDsaCng = new DigitalSignECDsaCng(param, isPrivate); } else { #if NETSTD this.DigitalSignECDsaOpenSsl = new DigitalSignECDsaOpenSsl( param, SHA384CryptoServiceProvider.Create()); //HashAlgorithmCmnFunc.CreateHashAlgorithmSP(EnumHashAlgorithm.SHA384_M)); #else throw new NotImplementedException(PublicExceptionMessage.NOT_IMPLEMENTED); #endif } }
protected override global::System.Security.Cryptography.HashAlgorithm New() { return(SHA384CryptoServiceProvider.Create()); }
/// <summary>ハッシュ(キー無し)サービスプロバイダの生成</summary> /// <param name="eha">ハッシュ(キー無し)サービスプロバイダの列挙型</param> /// <returns>ハッシュ(キー無し)サービスプロバイダ</returns> /// <remarks> /// EnumHashAlgorithmから、HashAlgorithmを生成するために追加。 /// HashAlgorithm.Create(HashNameConst.SHA256) は .NET Core 2 で動作せず。 /// - KeyedHashAlgorithm.Create("HMACSHA1") throw PNSE (on .NET Core 2 /// https://github.com/dotnet/standard/issues/530#issuecomment-375043416 /// </remarks> public static HashAlgorithm CreateHashAlgorithmSP(EnumHashAlgorithm eha) { // ハッシュ(キー無し)サービスプロバイダ HashAlgorithm ha = null; if (eha == EnumHashAlgorithm.Default) { // 既定の暗号化サービスプロバイダ ha = HashAlgorithmCmnFunc.GetHashAlgorithmFromNameString(); // devps(1703) } #region MD5 else if (eha == EnumHashAlgorithm.MD5_CSP) { // MD5CryptoServiceProviderサービスプロバイダ ha = MD5CryptoServiceProvider.Create(); // devps(1703) } #if NETSTD #else else if (eha == EnumHashAlgorithm.MD5_CNG) { // MD5Cngサービスプロバイダ ha = MD5Cng.Create(); // devps(1703) } #endif #endregion #region RIPEMD160 else if (eha == EnumHashAlgorithm.RIPEMD160_M) { #if NETSTD ha = null; // BouncyCastleを使用する。 #else // RIPEMD160Managedサービスプロバイダ ha = RIPEMD160Managed.Create(); // devps(1703) #endif } #endregion #region SHA1 else if (eha == EnumHashAlgorithm.SHA1_CSP) { // SHA1CryptoServiceProviderサービスプロバイダ ha = SHA1CryptoServiceProvider.Create(); // devps(1703) } #if NETSTD #else else if (eha == EnumHashAlgorithm.SHA1_CNG) { // SHA1Cngサービスプロバイダ ha = SHA1Cng.Create(); // devps(1703) } #endif else if (eha == EnumHashAlgorithm.SHA1_M) { // SHA1Managedサービスプロバイダ ha = SHA1Managed.Create(); // devps(1703) } #endregion #region SHA256 else if (eha == EnumHashAlgorithm.SHA256_CSP) { // SHA256CryptoServiceProviderサービスプロバイダ ha = SHA256CryptoServiceProvider.Create(); // devps(1703) } #if NETSTD #else else if (eha == EnumHashAlgorithm.SHA256_CNG) { // SHA256Cngサービスプロバイダ ha = SHA256Cng.Create(); // devps(1703) } #endif else if (eha == EnumHashAlgorithm.SHA256_M) { // SHA256Managedサービスプロバイダ ha = SHA256Managed.Create(); // devps(1703) } #endregion #region SHA384 else if (eha == EnumHashAlgorithm.SHA384_CSP) { // SHA384CryptoServiceProviderサービスプロバイダ ha = SHA384CryptoServiceProvider.Create(); // devps(1703) } #if NETSTD #else else if (eha == EnumHashAlgorithm.SHA384_CNG) { // SHA384Cngサービスプロバイダ ha = SHA384Cng.Create(); // devps(1703) } #endif else if (eha == EnumHashAlgorithm.SHA384_M) { // SHA384Managedサービスプロバイダ ha = SHA384Managed.Create(); // devps(1703) } #endregion #region SHA512 else if (eha == EnumHashAlgorithm.SHA512_CSP) { // SHA512CryptoServiceProviderサービスプロバイダ ha = SHA512CryptoServiceProvider.Create(); // devps(1703) } #if NETSTD #else else if (eha == EnumHashAlgorithm.SHA512_CNG) { // SHA512Cngサービスプロバイダ ha = SHA512Cng.Create(); // devps(1703) } #endif else if (eha == EnumHashAlgorithm.SHA512_M) { // SHA512Managedサービスプロバイダ ha = SHA512Managed.Create(); // devps(1703) } #endregion else { // 既定の暗号化サービスプロバイダ ha = HashAlgorithmCmnFunc.GetHashAlgorithmFromNameString(); // devps(1703) } return(ha); }