public void PopWindow(PopWindow wd) { try { Console.WriteLine(wd.ToYDSdkJsonString()); var cipherText = m_crypto.Encrypt(AESCrypto.ToBytes(wd.ToYDSdkJsonString())); var param = new Dictionary <string, object>() { { "app_id", m_appId }, { "msg_encrypt", cipherText } }; var client = new HttpClient(); var rsp = client.Post(this.apiPopWindow(), param, HttpContentTypes.ApplicationJson); Helper.CheckHttpStatus(rsp); var body = rsp.StaticBody <Dictionary <string, object> >(overrideContentType: HttpContentTypes.ApplicationJson); Helper.CheckApiStatus(body); } catch (WebException e) { throw new HttpRequestException(0, e.Message, e); } catch (Exception e) { if (e is GeneralEntAppException) { throw e; } else { throw new UnexpectedException(e.Message, e); } } }
public ActionResult Encrypt(string plainText) { ViewBag.PlainText = plainText; byte[] encryptedBytes = AESCrypto.AES_EncryptString(plainText); string encryptedHexString = CryptoHelper.ConvertByteArrayToHexString(encryptedBytes); ViewBag.EncryptedHexString = encryptedHexString + "&HMacToken=" + GenerateHMac(encryptedHexString); return(View("Index")); }
public void AESCrypto_EncryptDecrypt_ReturnsCorrectResult() { var sut = new AESCrypto(); var expected = Guid.NewGuid().ToString(); var cipher = sut.EncryptData(expected); var actual = sut.DecryptDataToString(cipher); Assert.Equal(expected, actual); }
public void Player_Data_Save() { FireBaseManager.Instance.LogEvent("Setting_Data_Save"); string jsonStr = JsonUtility.ToJson(DataManager.Instance.state_Player); string aes = AESCrypto.AESEncrypt128(jsonStr); StartCoroutine(Save(aes)); }
public dat_super_secret_app(string AESKey) { this.InitializeComponent(); _AESKey = AESKey; lblSubInfo.Text = AESCrypto.DecryptData(lblSubInfo.Text, _AESKey); lblTitle.Text = AESCrypto.DecryptData(lblTitle.Text, _AESKey).ToUpper(); _DDL = AESCrypto.DecryptData(_DDL, _AESKey); }
/// <summary> /// 搜索文件信息 /// </summary> /// <param name="mediaId">资源Id</param> /// <returns>(文件名, 字节数大小)</returns> /// <exception cref="AESCryptoException">加解密失败</exception> /// <exception cref="ParamParserException">参数解析失败</exception> /// <exception cref="HttpRequestException">http请求失败</exception> /// <exception cref="UnexpectedException">其它可能的错误</exception> public Tuple <string, long> SearchFile(string mediaId) { this.checkAndRefreshToken(); try { var mediaInfo = new Dictionary <string, string>() { { "mediaId", mediaId } }; var cipherMediaInfo = m_crypto.Encrypt(AESCrypto.ToBytes(new JsonWriter().Write(mediaInfo))); var param = new Dictionary <string, object>() { { "buin", m_buin }, { "appId", m_appId }, { "encrypt", cipherMediaInfo } }; var client = new HttpClient(); var rsp = client.Post(this.apiSearchFile(), param, HttpContentTypes.ApplicationJson, this.tokenQuery()); Helper.CheckHttpStatus(rsp); var body = rsp.StaticBody <Dictionary <string, object> >(overrideContentType: HttpContentTypes.ApplicationJson); Helper.CheckApiStatus(body); var decryptBuffer = m_crypto.Decrypt(Helper.GetEncryptJsonValue(body)); var existsInfo = new JsonReader().Read <Dictionary <string, object> >(AESCrypto.ToString(decryptBuffer)); object name; object size; if (!existsInfo.TryGetValue("name", out name) || name is string == false || ((string)name).Length == 0 || !existsInfo.TryGetValue("size", out size) || ((size is int && (int)size > 0) == false && (size is long && (long)size > 0) == false)) { throw new ParamParserException("invalid file info", null); } return(new Tuple <string, long>((string)name, Convert.ToInt64(size))); } catch (WebException e) { throw new HttpRequestException(0, e.Message, e); } catch (Exception e) { if (e is GeneralEntAppException) { throw e; } else { throw new UnexpectedException(e.Message, e); } } }
public void AESCrypto_TamperData_AreNotEqual() { var sut = new AESCrypto(); var expected = Guid.NewGuid().ToString(); var cipher = sut.EncryptData(expected); cipher[0]++; var actual = sut.DecryptDataToString(cipher); Assert.NotEqual(expected, actual); }
/// <summary> /// 构造函数 /// </summary> /// <param name="address">目标服务器地址,"ip:port"的形式</param> /// <param name="buin">企业号</param> /// <param name="appId">AppId</param> /// <param name="encodingAesKey">encodingAesKey</param> public AppClient(string address, int buin, string appId, string encodingAesKey) { if (address.Length == 0 || buin == 0 || appId.Length == 0 || encodingAesKey.Length == 0) { throw new ArgumentException(); } m_addr = address; m_buin = buin; m_appId = appId; m_crypto = new AESCrypto(appId, encodingAesKey); }
//登录信息 private object LoginRequestDecodeParser(byte[] bytes) { byte[] messageBytes = bytes; messageBytes = SnappySharp.Uncompress(messageBytes); messageBytes = AESCrypto.Decrypt(messageBytes, SecretKey, SecretVector); string jsonStr = Encoding.UTF8.GetString(messageBytes); return(JsonConvert.DeserializeObject(jsonStr, typeof(LoginRequest))); }
//返回商店物品列表 private byte[] ShopListResponseEncodeParser(object message) { string jsonStr = JsonConvert.SerializeObject(message, Formatting.None); byte[] messageBytes = Encoding.UTF8.GetBytes(jsonStr); messageBytes = AESCrypto.Encrypt(messageBytes, SecretKey, SecretVector); messageBytes = SnappySharp.Compress(messageBytes); return(messageBytes); }
public void AskAESKey() { byte[] msg = new byte[128]; Steam.Read(msg, 0, msg.Length); byte[] data = Server.RSACrypto.RSADecrypt(msg); ShareKey = data.Skip(0).Take(32).ToArray(); ShareIv = data.Skip(32).Take(16).ToArray(); AESCrypto = new AESCrypto(ShareKey, ShareIv); }
/// <summary> /// 집 정보 저장 하기 /// </summary> /// <param name="SaveData"></param> public void Save(State_Player SaveData) { string GameInfoPath = Application.persistentDataPath + PlayerDataName; BinaryFormatter bf = new BinaryFormatter(); FileStream file = File.Create(GameInfoPath); string jsonStr = JsonUtility.ToJson(SaveData); string aes = AESCrypto.AESEncrypt128(jsonStr); bf.Serialize(file, aes); file.Close(); }
private void DecryptButton_Click(object sender, RoutedEventArgs e) { if (ReceivedMessagesListView.SelectedItems.Count < 1) { MessageBox.Show("U have to select a message first!", "Warning!", MessageBoxButton.OK, MessageBoxImage.Information); } else if (ReceivedMessagesListView.SelectedItems.Count > 1) { MessageBox.Show("U can only read one message!", "Warning!", MessageBoxButton.OK, MessageBoxImage.Information); } else { MessageTextBlock.Visibility = Visibility.Visible; this.Height = 600; Message msg = (Message)ReceivedMessagesListView.SelectedItem; var fromUserPuK = msg.From.PuK; var currUserPvk = currUser.PvK; var file1 = msg.File1; var file2 = msg.File2; var file3 = msg.File3; var IV = msg.IV; var key = RSACrypto.DecryptBytes(file2, currUserPvk); MessageTextBlock.Text = "\n\n########AES KEY DECRYPT ########\n\n"; UnicodeEncoding _encoder = new UnicodeEncoding(); MessageTextBlock.Text += _encoder.GetString(key); var message = AESCrypto.DecryptStringFromBytes(file1, key, IV); MessageTextBlock.Text += "\n\n######## MESSAGE ########\n\n"; MessageTextBlock.Text += message; var oldHash = RSACrypto.DecryptBytes(file3, currUserPvk); string strOldHash = Encoding.UTF8.GetString(oldHash); MessageTextBlock.Text += "\n\n######## Decrypted hash ########\n\n"; MessageTextBlock.Text += strOldHash; if (BCrypt.CheckPassword(message, strOldHash)) { MessageTextBlock.Text += "\n\n######## HASHES ARE EQUAL! ########\n\n"; } else { MessageTextBlock.Text += "\n\n######## HASHES ARE NOT EQUAL! ########\n\n"; } } }
public ICryptoTransform CreateCryptoTransform(AESCrypto cryptoEnum) { switch (cryptoEnum) { case AESCrypto.Encrypt: return(mAESProvider.CreateEncryptor()); case AESCrypto.Decrypt: return(mAESProvider.CreateDecryptor()); default: throw new ArgumentException("AESCrypto 열거형 값이 올바르지 않습니다."); } }
private Token getToken() { try { var now = Helper.GetSecondTimeStamp(); var timestamp = AESCrypto.ToBytes(string.Format("{0}", now)); var encryptTime = m_crypto.Encrypt(timestamp); var param = new Dictionary <string, object>() { { "buin", m_buin }, { "appId", m_appId }, { "encrypt", encryptTime } }; var client = new HttpClient(); var rsp = client.Post(this.apiGetToken(), param, HttpContentTypes.ApplicationJson); Helper.CheckHttpStatus(rsp); var body = rsp.StaticBody <Dictionary <string, object> >(overrideContentType: HttpContentTypes.ApplicationJson); Helper.CheckApiStatus(body); var encrypt = Helper.GetEncryptJsonValue(body); var buffer = m_crypto.Decrypt(encrypt); var tokenInfo = new JsonReader().Read <Dictionary <string, object> >(AESCrypto.ToString(buffer)); object accessToken; object expireIn; if (!tokenInfo.TryGetValue("accessToken", out accessToken) || accessToken is string == false || ((string)accessToken).Length == 0 || !tokenInfo.TryGetValue("expireIn", out expireIn) || expireIn is int == false || (int)expireIn <= 0) { throw new ParamParserException("invalid token or expireIn", null); } return(new Token((string)accessToken, now, (int)expireIn)); } catch (WebException e) { throw new HttpRequestException(0, e.Message, e); } catch (Exception e) { if (e is GeneralEntAppException) { throw e; } else { throw new UnexpectedException(e.Message, e); } } }
public static void Main() { //pruebasMetodo1(); string textoPlano = "Texto para encriptar"; string textoClave = "Esto es una clave"; string encriptado = AESCrypto.Encrypt(textoPlano, textoClave); Console.WriteLine("Texto plano: {0}", textoPlano); Console.WriteLine("Encrypted: {0}", encriptado); string desencriptado = AESCrypto.Decrypt(encriptado, textoClave); Console.WriteLine("Desencriptado: {0}", desencriptado); Console.ReadKey(); }
public ActionResult Decrypt(string secret, string HMacToken) { string msg = string.Empty; bool isValidQueryString = TamperProofQueryString.ValidateQueryString(secret, HMacToken, out msg); if (isValidQueryString) { string plainText = "The Magic Words are Squeamish Ossifrage"; string response = ""; if (string.IsNullOrEmpty(secret)) { response = "No secret? Sorry, bad request!"; ViewBag.DecryptedText = response; HttpContext.Response.StatusCode = 400; return(View()); } try { byte[] encryptedBytes = CryptoHelper.ConvertHexStringToByteArray(secret); response = AESCrypto.AES_DecryptToString(encryptedBytes); if (plainText.Equals(response, StringComparison.OrdinalIgnoreCase)) { //Valid padding and valid plain text HttpContext.Response.StatusCode = 200; } else { //Valid padding, but incorrect format") HttpContext.Response.StatusCode = 404; } } catch (CryptographicException cex) { //Invalid padding (Exception message: "Padding is invalid and cannot be removed.") HttpContext.Response.StatusCode = 403; response = cex.Message; } ViewBag.DecryptedText = response; return(View()); } else { ViewBag.ErrorMessage = msg; return(View("AccessDenied")); } }
/// <summary> /// 플레이어 데이터 저장 /// </summary> public void Save_Player_Data() { Save(state_Player); #if UNITY_ANDROID GoogleManager.Instance.isPopup = false; GoogleManager.Instance.Player_Data_Save(); #elif UNITY_IOS CloudOnceManager.Instance.isSave = false; string jsonStr = JsonUtility.ToJson(DataManager.Instance.state_Player); string aes = AESCrypto.AESEncrypt128(jsonStr); CloudVariables.Player_Data = aes; Cloud.OnCloudSaveComplete += CloudOnceManager.Instance.CloudeSave; Cloud.Storage.Save(); #endif }
public void Test() { using (var aesCrypto = new AESCrypto()) { aesCrypto.Initialize(new Dictionary <string, object> { { "Key", "awVFRYPeTTrA9T7OOzaAFUvu8I/ZyYjAtIzEjCmzzYw=" }, { "IV", "7cFxoI3/k1wxN9P6rEyR/Q==" } }); var plainText = "SmartSql"; var cipherText = aesCrypto.Encrypt(plainText); var decryptText = aesCrypto.Decrypt(cipherText); Assert.Equal(plainText, decryptText); cipherText = aesCrypto.Encrypt(plainText); decryptText = aesCrypto.Decrypt(cipherText); Assert.Equal(plainText, decryptText); cipherText = aesCrypto.Encrypt(plainText); decryptText = aesCrypto.Decrypt(cipherText); Assert.Equal(plainText, decryptText); } }
/// <summary> /// 자기 정보 가져오기 /// </summary> /// <returns></returns> public State_Player Load_Player() { string InfoPath = Application.persistentDataPath + PlayerDataName; State_Player playerInfoSave = new State_Player(); if (File.Exists(InfoPath)) { BinaryFormatter bf = new BinaryFormatter(); FileStream file = File.Open(InfoPath, FileMode.Open); var str = (string)bf.Deserialize(file); file.Close(); if (!string.IsNullOrEmpty(str)) { string aes = AESCrypto.AESDecrypt128(str); var data = JsonUtility.FromJson <State_Player>(aes); playerInfoSave = data; } } else { BinaryFormatter bf = new BinaryFormatter(); FileStream file = File.Create(InfoPath); State_Player data = new State_Player(); playerInfoSave = data; string jsonStr = JsonUtility.ToJson(playerInfoSave); string aes = AESCrypto.AESEncrypt128(jsonStr); bf.Serialize(file, aes); file.Close(); } return(playerInfoSave); }
public void Player_Data_Load(string str) { DialogManager.GetInstance().Close(null); if (isPopup) { GameObject obj = UnityEngine.Object.Instantiate <GameObject>(Resources.Load("Prefabs/data_load_confirm") as GameObject); DialogManager.GetInstance().show(obj, false); } string aes = AESCrypto.AESDecrypt128(str); var data = JsonUtility.FromJson <State_Player>(aes); DataManager.Instance.state_Player = data; DataManager.Instance.Save_Player_Data(); Language.GetInstance().Set((SystemLanguage)DataManager.Instance.state_Player.LocalData_LanguageId); Reload(); }
public void CloudeLoad(bool success) { Cloud.OnCloudLoadComplete -= CloudeLoad; Debug.Log(success ? "로드 성공 " : "로드 실패"); if (!success) { return; } string str = CloudVariables.Player_Data; if (str != "") { if (!isPopup) { DialogManager.GetInstance().Close(null); } var aes = AESCrypto.AESDecrypt128(str); var data = JsonUtility.FromJson <State_Player>(aes); DataManager.Instance.state_Player = data; DataManager.Instance.Save_Player_Data(); Language.GetInstance().Set((SystemLanguage)DataManager.Instance.state_Player.LocalData_LanguageId); Main obj = FindObjectOfType(typeof(Main)) as Main; obj.Reload(); } isSave = true; }
/// <summary> /// 发送消息 /// </summary> /// <param name="msg">Message对象</param> /// <exception cref="AESCryptoException">加解密失败</exception> /// <exception cref="ParamParserException">参数解析失败</exception> /// <exception cref="HttpRequestException">http请求失败</exception> /// <exception cref="UnexpectedException">其它可能的错误</exception> public void SendMsg(Message msg) { this.checkAndRefreshToken(); try { Console.WriteLine(msg.ToJson()); var cipherText = m_crypto.Encrypt(AESCrypto.ToBytes(msg.ToJson())); var param = new Dictionary <string, object>() { { "buin", m_buin }, { "appId", m_appId }, { "encrypt", cipherText } }; var client = new HttpClient(); var rsp = client.Post(this.apiSendMsg(), param, HttpContentTypes.ApplicationJson, query: this.tokenQuery()); Helper.CheckHttpStatus(rsp); var body = rsp.StaticBody <Dictionary <string, object> >(overrideContentType: HttpContentTypes.ApplicationJson); Helper.CheckApiStatus(body); } catch (WebException e) { throw new HttpRequestException(0, e.Message, e); } catch (Exception e) { if (e is GeneralEntAppException) { throw e; } else { throw new UnexpectedException(e.Message, e); } } }
public override void handlePOSTRequest(HttpProcessor p, StreamReader inputData) { Console.WriteLine("POST request: {0}", p.http_url); var compnents = p.http_url.Split('?'); if (compnents.Length != 2) { Console.WriteLine("invalid url compnents: {0}", compnents.ToString()); p.writeFailure(); return; } var reqUri = compnents[0]; if (!reqUri.Equals(Uri)) { p.writeFailure(); return; } var queryPath = compnents[1]; var queryDict = new Dictionary <string, string>(); foreach (var statement in queryPath.Split("&&".ToCharArray())) { var elements = statement.Split('='); if (elements.Length == 2) { queryDict[elements[0]] = elements[1]; } } var data = inputData.ReadToEnd(); var jsonReader = new JsonReader(); var reqJson = jsonReader.Read <Dictionary <string, object> >(data); object toBuin; object toApp; object encrypt; if (!reqJson.TryGetValue("toBuin", out toBuin) || toBuin is int == false || (int)toBuin <= 0 || !reqJson.TryGetValue("toApp", out toApp) || toApp is string == false || ((string)toApp).Length == 0 || !reqJson.TryGetValue("encrypt", out encrypt) || encrypt is string == false || ((string)encrypt).Length == 0) { Console.WriteLine("invalid toBuin or toApp or encrypt"); p.writeFailure(); return; } var toBuinValue = (int)toBuin; var toAppValue = (string)toApp; var encryptValue = (string)encrypt; string timeStamp; string nonce; string signature; if (!queryDict.TryGetValue("timestamp", out timeStamp) || timeStamp == null || !queryDict.TryGetValue("nonce", out nonce) || nonce == null || !queryDict.TryGetValue("msg_signature", out signature) || signature == null) { Console.WriteLine("invalid timestamp or nonce or msg_signature"); p.writeFailure(); return; } if (toBuinValue != Buin || !toAppValue.Equals(AppId)) { Console.WriteLine("buin or appId is not matched"); p.writeFailure(); return; } var mySignature = Signature.GenerateSignature(Token, timeStamp, nonce, encryptValue); if (!signature.Equals(mySignature)) { Console.WriteLine("signature is not matched"); p.writeFailure(); return; } var decryptContent = m_crypto.Decrypt(encryptValue); //var msg = new SessionMessage().FromJson(AESCrypto.ToString(decryptContent)); var msg = new ReceiveMessage().FromJson(AESCrypto.ToString(decryptContent)); switch (msg.MsgType) { case Message.MessageTypeImage: { var msgBody = msg.MsgBody.ToImageBody(); m_appClient.DownloadFile(msgBody.MediaId, OutDir); } break; case Message.MessageTypeFile: { var msgBody = msg.MsgBody.ToFileBody(); m_appClient.DownloadFile(msgBody.MediaId, OutDir); } break; default: break; } Console.WriteLine(msg.ToString()); Console.WriteLine("packageId: {0}", msg.PackageId); p.writeSuccess(); p.outputStream.WriteLine(msg.PackageId); }
public MainResult ChangeMasterKey(string clearTextPassword) { if (String.IsNullOrEmpty(clearTextPassword)) { return new MainResult { Success = false, ErrorMessage = "Password cannot be null" } } ; bool success = true; string error = ""; var masterKeyResult = RetrieveHashedMasterKeyBase64(); if (!masterKeyResult.MainResult.Success) { success = false; error = masterKeyResult.MainResult.ErrorMessage; } else { try { bool isNew = false; if (!File.Exists(Global.DataFileLocation)) { File.WriteAllText(Global.DataFileLocation, null); isNew = true; } var unlockDataFileResult = UnlockFile ( filename: Global.DataFileLocation, isNew: isNew ); if (!unlockDataFileResult.Success) { success = false; error = unlockDataFileResult.ErrorMessage; } else { byte[] encryptedDataBytes = null; try { encryptedDataBytes = File.ReadAllBytes(Global.DataFileLocation); } catch { } if (encryptedDataBytes == null) { success = false; error = "Error while reading data"; } else if (encryptedDataBytes.Length != 0) { byte[] decryptedDataBytes = new AESCrypto().Decrypt(encryptedDataBytes, masterKeyResult.Data); if (decryptedDataBytes == null) { success = false; error = "Error while decrypting data"; } else { var changePasswordResult = StoreMasterKey(clearTextPassword); if (!changePasswordResult.Success) { success = false; error = changePasswordResult.ErrorMessage; } else { masterKeyResult = RetrieveHashedMasterKeyBase64(); if (!masterKeyResult.MainResult.Success) { success = false; error = masterKeyResult.MainResult.ErrorMessage; } else { decryptedDataBytes = new AESCrypto().Encrypt(decryptedDataBytes, masterKeyResult.Data); if (decryptedDataBytes == null) { success = false; error = "An error occured during data encryption"; } else { bool save = true; try { File.WriteAllBytes(Global.DataFileLocation, decryptedDataBytes); } catch { save = false; } if (!save) { success = false; error = "An error occured while saving data"; } var lockResult = LockFile(Global.DataFileLocation); if (!lockResult.Success) { success = false; error = lockResult.ErrorMessage; } } } } } } else { var changePasswordResult = StoreMasterKey(clearTextPassword); if (!changePasswordResult.Success) { success = false; error = changePasswordResult.ErrorMessage; } else { var lockResult = LockFile(Global.DataFileLocation); if (!lockResult.Success) { success = false; error = lockResult.ErrorMessage; } } } } } catch (Exception ex) { success = false; error = ex.ToString(); } } return(new MainResult { Success = success, ErrorMessage = error }); } }
public DataResult <List <ProcessModel> > RetrieveData() { bool success = true; string error = ""; List <ProcessModel> list = null; try { var masterKeyResult = RetrieveHashedMasterKeyBase64(); if (!masterKeyResult.MainResult.Success) { success = false; error = masterKeyResult.MainResult.ErrorMessage; } else { string masterKeyBase64 = masterKeyResult.Data; //1st time loading just returns empty list if (!File.Exists(Global.DataFileLocation)) { list = new List <ProcessModel>(); } else { var unlockDataFileResult = UnlockFile(Global.DataFileLocation); if (!unlockDataFileResult.Success) { success = false; error = unlockDataFileResult.ErrorMessage; } else { byte[] encryptedDataBytes = null; try { encryptedDataBytes = File.ReadAllBytes(Global.DataFileLocation); } catch { } LockFile(Global.DataFileLocation); if (encryptedDataBytes == null) { success = false; error = "Error while reading data"; } //if data is empty, just return empty list else if (encryptedDataBytes.Length == 0) { list = new List <ProcessModel>(); } else { byte[] decryptedDataBytes = new AESCrypto().Decrypt(encryptedDataBytes, masterKeyBase64); if (decryptedDataBytes == null) { success = false; error = "Error while decrypting data"; } else { var deserializationResult = DeserializeData(BitHelpers.ConvertBytesToString(decryptedDataBytes)); if (!deserializationResult.MainResult.Success) { success = false; error = deserializationResult.MainResult.ErrorMessage; } else { list = deserializationResult.Data; } } } } } } } catch (Exception ex) { success = false; error = ex.Message; } return(new DataResult <List <ProcessModel> > { Data = list, MainResult = new MainResult { Success = success, ErrorMessage = error } }); }
public MainResult StoreData(List <ProcessModel> list) { if (list == null) { return new MainResult { Success = false, ErrorMessage = "List is null" } } ; bool success = true; string error = ""; try { //it'll be used for the initial store. if (!File.Exists(Global.DataFileLocation)) { File.WriteAllText(Global.DataFileLocation, null); } //if zero, it doesn't need to be encrypted if (list.Count == 0) { var unlockResult = UnlockFile(Global.DataFileLocation); if (!unlockResult.Success) { success = false; error = unlockResult.ErrorMessage; } else { bool save = true; try { File.WriteAllText(Global.DataFileLocation, null); } catch { save = false; } if (!save) { success = false; error = "An error occured while saving data"; } else { var lockResult = LockFile(Global.DataFileLocation); if (!lockResult.Success) { success = false; error = lockResult.ErrorMessage; } } } } else { var serializationResult = SerializeData(list); if (!serializationResult.MainResult.Success) { success = false; error = serializationResult.MainResult.ErrorMessage; } else { string serializedJson = serializationResult.Data; var masterKeyResult = RetrieveHashedMasterKeyBase64(); if (!masterKeyResult.MainResult.Success) { success = false; error = masterKeyResult.MainResult.ErrorMessage; } else { string masterKeyBase64 = masterKeyResult.Data; byte[] encryptedData = new AESCrypto().Encrypt(BitHelpers.ConvertStringToBytes(serializedJson), masterKeyBase64); if (encryptedData == null) { success = false; error = "An error occured during data encryption"; } else { var unlockDataResult = UnlockFile(Global.DataFileLocation); if (!unlockDataResult.Success) { success = false; error = unlockDataResult.ErrorMessage; } else { bool save = true; try { File.WriteAllBytes(Global.DataFileLocation, encryptedData); } catch { save = false; } if (!save) { success = false; error = "An error occured while saving data"; } var lockResult = LockFile(Global.DataFileLocation); if (!lockResult.Success) { success = false; error = lockResult.ErrorMessage; } } } } } } } catch (Exception ex) { success = false; error = ex.Message; } return(new MainResult { Success = success, ErrorMessage = error }); }
private void Awake() { instance = this; }
public String EncryptToo(String plainText) { AESCrypto aes = new AESCrypto(); var cipherText = aes.Encrypt(plainText); return cipherText + " | " + aes.Decrypt(cipherText); }
//public PagoTarjeta(string formadepago,string FolioCliente, string FolioPagoTarjeta) public PagoTarjeta(string formadepago, string FolioCliente) { InitializeComponent(); TipoDeFormaDePago = formadepago; for (int i = 0; i < App.MVProducto.ListaDelCarrito.Count; i++) { cantidad += App.MVProducto.ListaDelCarrito[i].Cantidad; decimal a = decimal.Parse(App.MVProducto.ListaDelCarrito[i].StrCosto); } for (int i = 0; i < App.MVProducto.ListaDelInformacionSucursales.Count; i++) { TotalEnvio += App.MVProducto.ListaDelInformacionSucursales[i].CostoEnvio; TotalPagar += App.MVProducto.ListaDelInformacionSucursales[i].Total.ToString("N2"); subtotal += App.MVProducto.ListaDelInformacionSucursales[i].Subtotal; TotalPropina += App.MVProducto.ListaDelInformacionSucursales[i].DPropina; } TotalPagar = (decimal.Parse(TotalPagar) + TotalPropina).ToString("N2"); UidOrden = Guid.NewGuid(); UidOrdenPago = Guid.NewGuid(); App.MVCorreoElectronico.BuscarCorreos(UidPropietario: new Guid(App.Global1), strParametroDebusqueda: "Usuario"); string ArchivoXml = "" + "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n" + "<P>\r\n <business>\r\n" + " <id_company>Z937</id_company>\r\n" + " <id_branch>1050</id_branch>\r\n" + " <user>Z937SDUS1</user>\r\n" + " <pwd>09K1HT91B3</pwd>\r\n" + " </business>\r\n" + " <url>\r\n" + " <reference>" + UidOrdenPago.ToString() + "</reference>\r\n" + " <amount>" + TotalPagar + "</amount>\r\n" + " <moneda>MXN</moneda>\r\n" + " <canal>W</canal>\r\n" + " <omitir_notif_default>1</omitir_notif_default>\r\n" + " <st_correo>1</st_correo>\r\n" + " <mail_cliente>" + App.MVCorreoElectronico.CORREO + "</mail_cliente>\r\n" + " <datos_adicionales>\r\n" + " <data id=\"1\" display=\"false\">\r\n" + " <label>PRINCIPAL</label>\r\n" + " <value>" + FolioCliente + "</value>\r\n" + " </data>\r\n" + " <data id=\"2\" display=\"true\">\r\n" + " <label>Concepto:</label>\r\n" + " <value>Orden en GoDeliverix.</value>\r\n" + " </data>\r\n" + " <data id=\"3\" display=\"false\">\r\n" + " <label>Color</label>\r\n" + " <value>Azul</value>\r\n" + " </data>\r\n" + " </datos_adicionales>\r\n" + " </url>\r\n" + "</P>\r\n"; string originalString = ArchivoXml; string key = "7AACFE849FABD796F6DCB947FD4D5268"; AESCrypto o = new AESCrypto(); string encryptedString = o.encrypt(originalString, key); string finalString = encryptedString.Replace("%", "%25").Replace(" ", "%20").Replace("+", "%2B").Replace("=", "%3D").Replace("/", "%2F"); string encodedString = HttpUtility.UrlEncode("<pgs><data0>9265655113</data0><data>" + encryptedString + "</data></pgs>"); string postParam = "xml=" + encodedString; var client = new RestClient("https://bc.mitec.com.mx/p/gen"); var request = new RestRequest(Method.POST); request.AddHeader("cache-control", "no-cache"); request.AddHeader("content-type", "application/x-www-form-urlencoded"); request.AddParameter("application/x-www-form-urlencoded", postParam, ParameterType.RequestBody); IRestResponse response = client.Execute(request); var content = response.Content; //lblRespuesta.Text = o.decrypt(key, content); string decryptedString = o.decrypt(key, content); string str1 = decryptedString.Replace("<P_RESPONSE><cd_response>success</cd_response><nb_response></nb_response><nb_url>", ""); string url = str1.Replace("</nb_url></P_RESPONSE>", ""); WVWebPay.Source = new UrlWebViewSource { Url = url }; tiempo.Interval = 2000; tiempo.Elapsed += new ElapsedEventHandler(VerificaPago); tiempo.Start(); }
private string GenLigaPara(string id_company, string id_branch, string user, string pwd, string Referencia, decimal Importe, string moneda, string canal, string promocion, int intCorreo, string Vencimiento, string Correo, string Concepto, string semillaAES, string data0, string urlGen) { string url = string.Empty; string ArchivoXml = "" + "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n" + "<P>\r\n " + " <business>\r\n" + " <id_company>" + id_company + "</id_company>\r\n" + " <id_branch>" + id_branch + "</id_branch>\r\n" + " <user>" + user + "</user>\r\n" + " <pwd>" + pwd + "</pwd>\r\n" + " </business>\r\n" + " <url>\r\n" + " <reference>" + Referencia + "</reference>\r\n" + " <amount>" + Importe + "</amount>\r\n" + " <moneda>" + moneda + "</moneda>\r\n" + " <canal>" + canal + "</canal>\r\n" + " <omitir_notif_default>1</omitir_notif_default>\r\n" + " <promociones>" + promocion + "</promociones>\r\n" + " <st_correo>" + intCorreo + "</st_correo>\r\n" + " <fh_vigencia>" + Vencimiento + "</fh_vigencia>\r\n" + " <mail_cliente>" + Correo + "</mail_cliente>\r\n" + " <datos_adicionales>\r\n" + " <data id=\"1\" display=\"true\">\r\n" + " <label>Concepto:</label>\r\n" + " <value>" + Concepto + "</value>\r\n" + " </data>\r\n" + " <data id=\"2\" display=\"false\">\r\n" + " <label>Color</label>\r\n" + " <value>Azul</value>\r\n" + " </data>\r\n" + " </datos_adicionales>\r\n" + " </url>\r\n" + "</P>\r\n"; string originalString = ArchivoXml; string key = semillaAES; AESCrypto aesCrypto = new AESCrypto(); string encryptedString = aesCrypto.encrypt(originalString, key); string finalString = encryptedString.Replace("%", "%25").Replace(" ", "%20").Replace("+", "%2B").Replace("=", "%3D").Replace("/", "%2F"); string encodedString = HttpUtility.UrlEncode("<pgs><data0>" + data0 + "</data0><data>" + encryptedString + "</data></pgs>"); string postParam = "xml=" + encodedString; var client = new RestClient(urlGen); var request = new RestRequest(Method.POST); request.AddHeader("cache-control", "no-cache"); request.AddHeader("content-type", "application/x-www-form-urlencoded"); request.AddParameter("application/x-www-form-urlencoded", postParam, ParameterType.RequestBody); IRestResponse response = client.Execute(request); var content = response.Content; string decryptedString = aesCrypto.decrypt(key, content); string str1 = decryptedString.Replace("<P_RESPONSE><cd_response>success</cd_response><nb_response></nb_response><nb_url>", ""); url = str1.Replace("</nb_url></P_RESPONSE>", ""); return(url); }