2022 jphd-3dprint
continuous-integration/drone/push Build is failing

This commit is contained in:
2022-02-23 17:19:19 +08:00
parent e0115e0e07
commit 772525a9b6
18 changed files with 712 additions and 228 deletions
+92
View File
@@ -0,0 +1,92 @@
using System;
using System.IO;
using System.Security.Cryptography;
namespace _2021_backend.Utils
{
public static class CipherHelper
{
static byte[] EncryptStringToBytes_Aes(string plainText, byte[] Key, byte[] IV)
{
// Check arguments.
if (plainText == null || plainText.Length <= 0)
throw new ArgumentNullException("plainText");
if (Key == null || Key.Length <= 0)
throw new ArgumentNullException("Key");
if (IV == null || IV.Length <= 0)
throw new ArgumentNullException("IV");
byte[] encrypted;
// Create an Aes object
// with the specified key and IV.
using (Aes aesAlg = Aes.Create())
{
aesAlg.Key = Key;
aesAlg.IV = IV;
// Create an encryptor to perform the stream transform.
ICryptoTransform encryptor = aesAlg.CreateEncryptor(aesAlg.Key, aesAlg.IV);
// Create the streams used for encryption.
using (MemoryStream msEncrypt = new MemoryStream())
{
using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write))
{
using (StreamWriter swEncrypt = new StreamWriter(csEncrypt))
{
//Write all data to the stream.
swEncrypt.Write(plainText);
}
encrypted = msEncrypt.ToArray();
}
}
}
// Return the encrypted bytes from the memory stream.
return encrypted;
}
static string DecryptStringFromBytes_Aes(byte[] cipherText, byte[] Key, byte[] IV)
{
// Check arguments.
if (cipherText == null || cipherText.Length <= 0)
throw new ArgumentNullException("cipherText");
if (Key == null || Key.Length <= 0)
throw new ArgumentNullException("Key");
if (IV == null || IV.Length <= 0)
throw new ArgumentNullException("IV");
// Declare the string used to hold
// the decrypted text.
string plaintext = null;
// Create an Aes object
// with the specified key and IV.
using (Aes aesAlg = Aes.Create())
{
aesAlg.Key = Key;
aesAlg.IV = IV;
// Create a decryptor to perform the stream transform.
ICryptoTransform decryptor = aesAlg.CreateDecryptor(aesAlg.Key, aesAlg.IV);
// Create the streams used for decryption.
using (MemoryStream msDecrypt = new MemoryStream(cipherText))
{
using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read))
{
using (StreamReader srDecrypt = new StreamReader(csDecrypt))
{
// Read the decrypted bytes from the decrypting stream
// and place them in a string.
plaintext = srDecrypt.ReadToEnd();
}
}
}
}
return plaintext;
}
}
}
+16 -1
View File
@@ -9,6 +9,7 @@ using TencentCloud.Common;
using TencentCloud.Common.Profile;
using TencentCloud.Sms.V20210111;
using TencentCloud.Sms.V20210111.Models;
using System.Security.Cryptography;
namespace _2021_backend.Utils
{
@@ -21,12 +22,13 @@ namespace _2021_backend.Utils
public static string SMSID_reject { get; set; }
public static string SMSID_timeSet { get; set; }
public static string SMSID_signed { get; set; }
public static string SMSID_captcha { get; set; }
private static bool Initialized = false;
private static string SMSID_timeSelect { get; set; }
public static void Init(string tencentid, string tencentKey, string appid, string ID_accept, string ID_reject, string ID_timeSet, string ID_submitted, string ID_timeSelect)
public static void Init(string tencentid, string tencentKey, string appid, string ID_accept, string ID_reject, string ID_timeSet, string ID_submitted, string ID_timeSelect,string ID_captcha)
{
Tencent_id = tencentid;
Tencent_key = tencentKey;
@@ -36,6 +38,7 @@ namespace _2021_backend.Utils
SMSID_timeSet = ID_timeSet;
SMSID_signed = ID_submitted;
SMSID_timeSelect = ID_timeSelect;
SMSID_captcha = ID_captcha;
Initialized = true;
}
public static async Task<bool> Pull(BackendContext Context, Student stu, bool fullPull)
@@ -145,6 +148,18 @@ namespace _2021_backend.Utils
req.TemplateParamSet = new string[] { stu.Name };
req.TemplateId = SMSID_signed;
break;
case SMSType.Captcha:
sms.Type = SMSType.Captcha;
var captchaBytes = new byte[]{0,0,0,0,0,0};
RNGCryptoServiceProvider csp = new RNGCryptoServiceProvider();
csp.GetBytes(captchaBytes);
for (int i = 0; i < 6; i++) captchaBytes[i] %= 10;
string captcha = $"{captchaBytes[0]}{captchaBytes[1]}{captchaBytes[2]}{captchaBytes[3]}{captchaBytes[4]}{captchaBytes[5]}";
stu.LastCaptcha = captcha;
stu.LastCaptchaTime = DateTime.Now;
req.TemplateParamSet = new string[] { captcha };
req.TemplateId = SMSID_captcha;
break;
}
sms.Tel = stu.Tel;
sms.Host = stu.Id;