public void AES256BitKeyTest() { string plainText = "hello world"; string key = "!@#$%^&*()123456!@#$%^&*()123456"; string encrypted = Encryption.AesEncrypt(plainText, key); string decrypted = Encryption.AesDecrypt(encrypted, key); Assert.NotEqual(plainText, encrypted); Assert.Equal(plainText, decrypted); }
public void AesEncryptStringTests() { const string msg = "all good men must act"; const string password = "******"; var encrypt = Encryption.AesEncrypt(msg, password); var decrypt = Encryption.AesDecrypt(encrypt, password); Assert.Equal(msg, decrypt); }
/// <summary> /// UnEncrypts the model properties of ISqlDataModel object defined by SQLData instance type dictionary. /// </summary> /// <param name="dict">Dict.</param> /// <param name="obj">Object.</param> /// <typeparam name="T">The 1st type parameter.</typeparam> public static void UnEncryptedDataModelProperties <T>(this Dictionary <Type, PropertyInfo[]> dict, T obj) where T : new() { var props = dict[typeof(T)]; if (props.Count() > 0) { foreach (var prop in props) { prop.SetValue(obj, Encryption.AesDecrypt(prop.GetString(obj), CoreSettings.Config.AESEncryptionKey), null); } } }
public void AesEncryptStringTests_BadPassword() { const string msg = "all good men must act"; const string password = "******"; var encrypt = Encryption.AesEncrypt(msg, password); Assert.Throws <CryptographicException>(() => Encryption.AesDecrypt(encrypt, "Bad password")); var decrypt = Encryption.AesDecrypt(encrypt, password); Assert.Equal(msg, decrypt); }
public void EncrypTest() { // // TODO: 在此处添加测试逻辑 // string QQ = "2426837192"; string expectedResult = QQ; string cipherText = Encryption.AesEncrypt(QQ); Assert.AreEqual(expectedResult, Encryption.AesDecrypt(cipherText)); }
public void AesEncryptDecryptTests() { var msg = "all good men must act"; var data1 = Encoding.UTF8.GetBytes(msg); var password = "******"; var key = Encryption.KeyFromPassword(password); var edata1 = Encryption.AesEncrypt(data1, key); var ddata1 = Encryption.AesDecrypt(edata1, key); Assert.Equal(data1, ddata1); Assert.Equal(msg, Encoding.UTF8.GetString(ddata1)); }
public void AesEncryptDecryptTest_With_InitializationVector() { var msg = "all good men must act"; var data1 = Encoding.UTF8.GetBytes(msg); var password = "******"; var key = Encryption.KeyFromPassword(password); var iv = Encryption.InitializationVector(key, data1); var edata1 = Encryption.AesEncrypt(data1, key, iv, true); var ddata1 = Encryption.AesDecrypt(edata1, key, iv); Assert.Equal(data1, ddata1); Assert.Equal(msg, Encoding.UTF8.GetString(ddata1)); }
/// <summary> /// UnEncrypts the model properties of ObservableObject lists. /// </summary> /// <param name="list">List.</param> /// <typeparam name="T">The 1st type parameter.</typeparam> public static void UnEncryptedModelProperties <T>(IEnumerable <T> list) where T : BindableObject { var props = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance) .Where(p => p.GetCustomAttributes(typeof(EncryptedPropertyAttribute)).Count() > 0).ToArray(); if (props.Count() > 0) { foreach (var prop in props) { foreach (var obj in list) { prop.SetValue(obj, Encryption.AesDecrypt(prop.GetString(obj), CoreSettings.Config.AESEncryptionKey), null); } } } }
public void AesEncryptTests() { var msg = "all good men must act"; var data1 = msg.Utf8ToBytes(); var password = "******"; var key = Encryption.KeyFromPassword(password); { var edata1 = Encryption.AesEncrypt(data1, key); var ddata1 = Encryption.AesDecrypt(edata1, key); Assert.Equal(data1, ddata1); Assert.Equal(msg, Encoders.Utf8.Encode(ddata1)); } { var iv = Encryption.InitializationVector(key, data1); var edata1 = Encryption.AesEncrypt(data1, key, iv, true); var ddata1 = Encryption.AesDecrypt(edata1, key, iv); Assert.Equal(data1, ddata1); Assert.Equal(msg, Encoders.Utf8.Encode(ddata1)); } }
public IHttpActionResult Get(string code, string state) { bool checkResult = false; string fromQQ = Encryption.AesDecrypt(state); var tokenModel = githubConnector.AccessToken(code, ref checkResult); // 获取Access Token if (tokenModel != null) { if (!tokenModel.scope.Contains("repo") || tokenModel.scope == null) // 用户手动更改了权限,向用户返回权限不足信息 { CQ.Api.SendPrivateMessage(Convert.ToInt64(fromQQ), "抱歉,您申请的权限不足,绑定失败!"); return(BadRequest("权限不足")); } // 调用Github API获取用户数据 try { GithubUserInfo userInfo = githubConnector.GetUserInfo(tokenModel.access_token); // 用户信息 List <GithubRepositoryInfo> repositories = githubConnector.GetRepositories(tokenModel.access_token); // 授权用户的所有仓库信息 using (var context = new GithubWatcherContext()) { var user = context.GithubBindings.FirstOrDefault(s => s.GithubUserName == userInfo.Login); // 如果不存在,则往数据库中添加信息 if (user == null) { GithubBinding newBinding = new GithubBinding(); newBinding.QQ = fromQQ; newBinding.GithubUserName = userInfo.Login; newBinding.AccessToken = tokenModel.access_token; context.GithubBindings.Add(newBinding); CQ.Api.SendPrivateMessage(Convert.ToInt64(fromQQ), "绑定Github账户" + userInfo.Login + "成功!"); } else if (user.QQ == fromQQ) { if (user.AccessToken == tokenModel.access_token) { CQ.Api.SendPrivateMessage(Convert.ToInt64(fromQQ), "您已经绑定过该Github账户!"); } else { // 更新accessToken user.AccessToken = tokenModel.access_token; CQ.Api.SendPrivateMessage(Convert.ToInt64(fromQQ), "您已经绑定过该Github账户,已为您刷新Access Token,请尽快完成仓库绑定操作。"); } } else { CQ.Api.SendPrivateMessage(Convert.ToInt64(fromQQ), "抱歉,该Github账户已被其他用户绑定!"); } foreach (var repository in repositories) { var query = context.RepositoryInformations.FirstOrDefault(s => s.GithubUserName == userInfo.Login && s.Repository == repository.FullName); // 如果不存在,则往数据库中添加信息 if (query == null) { RepositoryInformation newRepositoryInfo = new RepositoryInformation(); newRepositoryInfo.GithubUserName = userInfo.Login; newRepositoryInfo.Repository = repository.FullName; context.RepositoryInformations.Add(newRepositoryInfo); } } context.SaveChanges(); return(Ok("绑定成功!")); } } catch (Exception e) { if (e.Message.Contains("基础连接已经关闭: 发送时发生错误")) { CQ.Api.SendPrivateMessage(Convert.ToInt64(fromQQ), "您的访问过于频繁,请稍后再试!"); } else { CQ.Api.SendPrivateMessage(Convert.ToInt64(fromQQ), "错误:" + e.Message + "请联系管理员QQ:2426837192!"); } return(BadRequest(e.Message)); } } return(BadRequest("获取Access Token失败!")); }