crypto 加密数据
$ dotnet add package micrypt专注于数据加密,让数据加密变得更灵活、便捷。
密码 正确使用方式: 存储密码 = 加密方法(核心密码 + 随机内容)。
var scipher = new ChaCha20();
scipher.Init("test");
Console.Write(scipher.NowHexText);
实现 ZUC、RC4 、ChaCha20算法。
加密方式: 流 ⊕ 密钥流
using (var fs = File.Open("test", FileMode.Open, FileAccess.ReadWrite))
FastStream.Ciphering<RC4>(fs, "123" +random);
! 推荐先压缩在加密
var rsa = new RSA(768) .Generate();
var public_rsa = new RSA(768).LoadPublic(rsa.GetPublicKey());
var private_rsa = new RSA(768).LoadPrivate(rsa.GetPrivateKey());
var x = public_rsa.Encrypt(SuInt.New("123321"));
var y = private_rsa.Decrypt(x);
var ecc = ECC.Use_brainpoolp192r1().Generate();
var sk = ecc.GetPrivateKey();
var pk = ecc.GetPublicKey();
Console.WriteLine("ECC 私钥: " + sk);
Console.WriteLine("ECC 公钥: " + pk);
ecc.LoadPublic(pk.ToString());
var a = ecc.Encrypt(TEXT.Hello);
Console.WriteLine("ECC 密文: " + a.ToString());
ecc.LoadPrivate(sk.ToString());
Console.WriteLine("ECC 明文: " + ecc.Decrypt(a));
var sm2 = new SM2().Generate();
var m = sm2.Encrypt(TEXT.Hello);
if (TEXT.Hello == sm2.Decrypt(m)) Console.WriteLine("Test[SM2]: PASS");
var dsa = new DSA(1024, 160);
dsa.Generate();
var pk = dsa.GetPublicKey().ToString();
var sk = dsa.GetPrivateKey().ToString();
var hash = FastHash.GetMD5Bytes(TEXT.Hello);
var sign = new DSA(1024, 160).LoadPrivate(sk).Sign(hash);
var verity_state = new DSA(1024, 160).LoadPublic(pk).VeritySign(sign, hash);
Console.WriteLine(FastMsgAuth.WebHookSign_Gitee("1764051189585", "123456") == "dhVvK7SAXrPi3HejRvwfFP/XzdN5DVBRz7bPA4WziWM=" ? "PASS": "FAIL");