# Vive.Crypto
**Repository Path**: CoderNG/Vive.Crypto
## Basic Information
- **Project Name**: Vive.Crypto
- **Description**: 实现了C#、Java 和 JS 的SM3,SM4的相互加密解密;以及对各种常用的加密算法,有 Base64、对称加密(DES、3DES、AES、SM4)、非对称加密(RSA、SM2)、Hash(MD4、MD5、HMAC、HMAC-MD5、HMAC-SHA1、HMAC-SHA256、HMAC-SHA384、HMAC-SHA512、SHA、SHA1、SHA256、SHA384、SHA512、SM3)等
- **Primary Language**: C#
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 20
- **Created**: 2024-03-04
- **Last Updated**: 2024-03-04
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Vive.Crypto(https://gitee.com/stoneson/Vive.Crypto)
Vive.Crypto对各种常用的加密算法进行封装,有 Base64、对称加密(DES、3DES、AES、SM4)、非对称加密(RSA、SM2)、Hash(MD4、MD5、HMAC、HMAC-MD5、HMAC-SHA1、HMAC-SHA256、HMAC-SHA384、HMAC-SHA512、SHA、SHA1、SHA256、SHA384、SHA512、SM3)等实现。
内含Java(https://gitee.com/stoneson/Vive.Crypto/tree/master/SMCrypto/SMJAVA) 和 js(https://gitee.com/stoneson/Vive.Crypto/tree/master/SMCrypto/SMJS) 的SM2,SM3,SM4 密码类;
实现了C#、Java 和 JS 的SM3,SM4的相互加密解密
///
/// 哈希加密类型
///
public enum HashingProviderType
{
HMACMD5 = 1,
HMACSHA1 = 2,
HMACSHA256 = 3,
HMACSHA384 = 4,
HMACSHA512 = 5,
MD4 = 6,
MD5 = 7,
SHA1 = 8,
SHA256 = 9,
SHA384 = 10,
SHA512 = 11,
SM3 = 12,
}
///
/// 非对称加密类型
///
public enum AsymmetricProviderType
{
RSA = 1,
RSA2 = 2,
SM2 = 3,
}
///
/// 对称加密类型
///
public enum SymmetricProviderType
{
AES128 = 1,
AES192 = 2,
AES256 = 3,
DES = 4,
TripleDES128 = 5,
TripleDES192 = 6,
SM4 = 7,
SM4JAVA = 8,
SM4JS = 9
}
所有加密方式创建都通过下面的类来处理,只要传相应的加密方式类型名称进去就行:
///
/// 所有加密创建工厂
///
public sealed class CryptoFactory
{
///
/// 创建哈希加密提供程序
///
///
///
public static IHashingProvider CreateHashing(string providerTypestr = "SHA256")
{
return HashingProviderFactory.Create(providerTypestr);
}
///
/// 创建哈希加密提供程序
///
///
///
public static IHashingProvider CreateHashing(HashingProviderType providerType = HashingProviderType.SHA256)
{
return HashingProviderFactory.Create(providerType);
}
//---------------------------------------------------------------------------------------------------------------------
///
/// 创建非对称加密提供程序
///
///
///
public static IAsymmetricProvider CreateAsymmetric(string providerTypestr = "RSA")
{
return AsymmetricProviderFactory.Create(providerTypestr);
}
///
/// 创建非对称加密提供程序
///
///
///
public static IAsymmetricProvider CreateAsymmetric(AsymmetricProviderType providerType = AsymmetricProviderType.RSA)
{
return AsymmetricProviderFactory.Create(providerType);
}
//---------------------------------------------------------------------------------------------------------------------
///
/// 创建对称加密提供程序
///
///
///
public static ISymmetricProvider CreateSymmetric(string providerTypestr = "SM4")
{
return SymmetricProviderFactory.Create(providerTypestr);
}
///
/// 创建对称加密提供程序
///
///
///
public static ISymmetricProvider CreateSymmetric(SymmetricProviderType providerType = SymmetricProviderType.SM4)
{
return SymmetricProviderFactory.Create(providerType);
}
}
国密算法参考:
java:https://github.com/hyfree/SM2_SM3_SM4Encrypt/tree/5e7ec1b2604ae9471dc0baaafb45d07563576e9d
JS:https://github.com/yazhouZhang/SM2-SM3-SM4-SM9
C#:https://www.cnblogs.com/shenblogs/p/10346009.html
其他加密参考:
https://github.com/bing-framework/Bing.Encryption