Code Monkey home page Code Monkey logo

stoneson / vive.crypto Goto Github PK

View Code? Open in Web Editor NEW
36.0 3.0 11.0 32.17 MB

Vive.Crypto实现了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)等实现。

License: MIT License

C# 4.52% HTML 92.19% JavaScript 0.59% CSS 0.19% Java 2.50% Batchfile 0.01%
des 3des aes sm4 rsa sm2 md4 md5 hmac sha1 sm3

vive.crypto's Introduction

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, }

 /// <summary>
/// 非对称加密类型
/// </summary>
public enum AsymmetricProviderType
{
    RSA = 1,
    RSA2 = 2,
    SM2 = 3,
}

 /// <summary>
/// 对称加密类型
/// </summary>
public enum SymmetricProviderType
{
    AES128 = 1,
    AES192 = 2,
    AES256 = 3,
    DES = 4,
    TripleDES128 = 5,
    TripleDES192 = 6,
    SM4 = 7,
    SM4JAVA = 8,
    SM4JS = 9
}

所有加密方式创建都通过下面的类来处理,只要传相应的加密方式类型名称进去就行:

 /// <summary>
/// 所有加密创建工厂
/// </summary>
public sealed class CryptoFactory
{
    /// <summary>
    /// 创建哈希加密提供程序
    /// </summary>
    /// <param name="providerTypestr"></param>
    /// <returns></returns>
    public static IHashingProvider CreateHashing(string providerTypestr = "SHA256")
    {
        return HashingProviderFactory.Create(providerTypestr);
    }
    /// <summary>
    /// 创建哈希加密提供程序
    /// </summary>
    /// <param name="providerType"></param>
    /// <returns></returns>
    public static IHashingProvider CreateHashing(HashingProviderType providerType = HashingProviderType.SHA256)
    {
        return HashingProviderFactory.Create(providerType);
    }
    //---------------------------------------------------------------------------------------------------------------------
    /// <summary>
    /// 创建非对称加密提供程序
    /// </summary>
    /// <param name="providerTypestr"></param>
    /// <returns></returns>
    public static IAsymmetricProvider CreateAsymmetric(string providerTypestr = "RSA")
    {
        return AsymmetricProviderFactory.Create(providerTypestr);
    }
    /// <summary>
    /// 创建非对称加密提供程序
    /// </summary>
    /// <param name="providerType"></param>
    /// <returns></returns>
    public static IAsymmetricProvider CreateAsymmetric(AsymmetricProviderType providerType = AsymmetricProviderType.RSA)
    {
        return AsymmetricProviderFactory.Create(providerType);
    }
    //---------------------------------------------------------------------------------------------------------------------
    /// <summary>
    /// 创建对称加密提供程序
    /// </summary>
    /// <param name="providerTypestr"></param>
    /// <returns></returns>
    public static ISymmetricProvider CreateSymmetric(string providerTypestr = "SM4")
    {
        return SymmetricProviderFactory.Create(providerTypestr);
    }
    /// <summary>
    /// 创建对称加密提供程序
    /// </summary>
    /// <param name="providerType"></param>
    /// <returns></returns>
    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

vive.crypto's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

vive.crypto's Issues

你好,请教一下,我这边碰到和java的加密对接,我无法解密他们的内容

private static final String     RSA_CIPHER_KEY_ALG = "RSA/ECB/OAEPWithSHA-256AndMGF1Padding";
private static final String     RSA_KEY_ALG        = "RSA";
private static final int        KEYSIZE            = 2048;
private static final String     COMMON_DECODE      = "UTF-8";
private static final String     RSA_SIGN_ALG       = "SHA256WithRSA";

这是java代码的rsa加密配置,我这边同样也用cipher去加密,java解不了,java传给我的,我也解不了,感觉是BASE64不一致问题,是不是byte的不一致导致的?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.