Tag: 加密

在clickonce应用程序中安全地存储服务帐户凭据

我正在编写一个ClickOnce应用程序,它运行带有服务帐户凭据的批处理文件进程。 我需要存储服务帐户凭据,以便程序可以在运行进程之前将用户名/密码添加到process.startinfo属性中。 用户不知道此密码,因此没有提示他们输入密码。 我相信这意味着我无法存储哈希并以这种方式validation密码,我生成的哈希值必须是可逆的,以便它可以将正确的密码添加到startinfo属性。 我在这个网站上搜索并提出了一个可行的Frankenstein类型的解决方案,但它不是很安全。 目前,我使用此方法加密密码,存储加密值,然后使用decrypt方法在运行时获取密码(加密方法在运行时从不运行,我在调试期间在Visual Studio中运行它,复制值,然后在下面的解密方法中使用该值): // used to generate decrypted acct creds private void EncryptText(string plaintext) { string outsrt = null; RijndaelManaged aesAlg = null; try { // generate key from secret and salt Rfc2898DeriveBytes key = new Rfc2898DeriveBytes(sharedsecret, _salt); aesAlg = new RijndaelManaged(); aesAlg.Key = key.GetBytes(aesAlg.KeySize / 8); ICryptoTransform encryptor = aesAlg.CreateEncryptor(aesAlg.Key, […]

无法解密第二台计算机上的数据

我有两个应用程序,服务器和客户端,一个从一台机器运行,另一个从第二台机器运行,服务器使用WebSocket连接传递数据,数据在发送到客户端之前被加密,数据使其成为客户端应用程序正确,但我正在尝试使用相同的安全方法和密钥解密它,但我不会工作,它只在两个应用程序从同一台计算机运行时解密它。 有没有人知道它们从同一台机器运行时为什么会起作用,而不是从单独的机器运行它们时呢? 服务器和客户端应用程序都使用相同的安全方法。 using System.Security.Cryptography; // ENCRYPT static byte[] entropy = System.Text.Encoding.Unicode.GetBytes(“MY SECRET KEY HERE”); public static string EncryptString(System.Security.SecureString input) { byte[] encryptedData = System.Security.Cryptography.ProtectedData.Protect( System.Text.Encoding.Unicode.GetBytes(ToInsecureString(input)), entropy, System.Security.Cryptography.DataProtectionScope.CurrentUser); return Convert.ToBase64String(encryptedData); } public static SecureString DecryptString(string encryptedData) { try { byte[] decryptedData = System.Security.Cryptography.ProtectedData.Unprotect( Convert.FromBase64String(encryptedData), entropy, System.Security.Cryptography.DataProtectionScope.CurrentUser); return ToSecureString(System.Text.Encoding.Unicode.GetString(decryptedData)); } catch { return new SecureString(); } […]

AES填充并将密文写入磁盘文件

我有一个字符串,我用C ++使用Crypto ++加密以下mehtod: std::ifstream t(filename); //File to be encrypt std::stringstream buffer; buffer << t.rdbuf(); ofstream combined_file2(filename2); //Encrypted file combined_file2 << encrypt(buffer.str()); string encrypt(string data) { // Key and IV setup std::string key = "0123456789abcdef"; std::string iv = "aaaaaaaaaaaaaaaa"; //Alternative //byte key[CryptoPP::AES::DEFAULT_KEYLENGTH], iv[CryptoPP::AES::BLOCKSIZE]; //memset(key, 0x00, CryptoPP::AES::DEFAULT_KEYLENGTH); //memset(iv, 0x00, CryptoPP::AES::BLOCKSIZE); std::string plaintext = data; std::string ciphertext; // […]

如何从PEM文件中使用rsa解密

我正在使用以下c#代码使用带有PEM文件的rsa进行加密和解密: public string encrypt(string elementToEncrypt, string pathPrivateKey) { string pem = System.IO.File.ReadAllText(pathPrivateKey); byte[] Buffer = getBytesFromPEMFile(pem, “PUBLIC KEY”); System.Security.Cryptography.RSACryptoServiceProvider rsa = new System.Security.Cryptography.RSACryptoServiceProvider(); System.Security.Cryptography.RSAParameters rsaParam = rsa.ExportParameters(false); rsaParam.Modulus = Buffer; rsa.ImportParameters(rsaParam); byte[] encryptedMessageByte = rsa.Encrypt(Convert.FromBase64String(elementToEncrypt),false); return Convert.ToBase64String(encryptedMessageByte); } public string decrypt(string elementToDesencrypt, string pathPublicKey) { string pem = System.IO.File.ReadAllText(pathPublicKey); byte[] Buffer = getBytesFromPEMFile(pem, “RSA PRIVATE […]

是否有任何好的方法来加密C#桌面应用程序

可能重复: 保护.NET代码免受逆向工程? 我们只是用C#winforms开发一个应用程序,有没有什么好的加密方法来帮助我们防止盗版? 我看到一些软件可能需要硬件支持来保护他们的软件,如何实现呢? 提前致谢 !

如何使用AES获取相同纯文本的不同密文

我目前在C#中使用AesManaged类来加密纯文本。 它工作正常。 但是,每次加密同一条数据时,它都会生成相同的密文。 反正我是否可以调整此行为并为同一条数据生成不同的密文? 我使用AES_256算法和证书在SQL服务器中实现了加密。 该过程与此处的post非常相似: http : //www.codeproject.com/Articles/662187/FIPS-Encryption-Algorithms-and-Implementation-of-A 。 在此过程中,每次加密纯文本时,都会生成不同的密文。 我想要与C#代码相同的效果。 如何实现? 编辑:以下是我实施Yolanda Ruiz建议的方法: 加密 public static string Encrypt(string plainText) { //Check for valid arguments. if (String.IsNullOrEmpty(plainText)) throw new ArgumentNullException(“plainText”); List encryptedList; //Create Aes object using (AesManaged aes = new AesManaged()) { aes.Key = Key; aes.GenerateIV(); encryptedList = aes.IV.ToList(); aes.BlockSize = BlockSize; /*Here goes […]

如何防止托管dll进行逆向工程C#

问题是我的dll处理加密,密钥存储在常量变量中。 我希望钥匙很难搞定。 我知道没有办法完全隐藏它,但我希望有办法让关键变得困难。 你有什么建议吗? 谢谢您的帮助!

在asp.net c#中的ActionScript3和Decrypt中加密

我需要将数据从闪存发送到服务器,所以我正在寻找一个Flash ActionScript 3.0脚本,它将加密文本和解密文本的C#.net脚本。 有人能帮我一下吗 ?

在C#中搜索动态Web内容

是否有可能刮取动态网页生成的数据? 我的意思是例如这个网站使用一些java脚本生成标签 document.write(“:”+(v2j0j0^o5r8)+(r8d4x4^y5i9)+(b2r8e5^u1p6)+(r8d4x4^y5i9)) 每次刷新页面时值都会更改。 每个生成的代码表示从0到9的数字,例如(code1)+(code2)+(code3)+(code4) ,在后端编写一些类型的解析器,它理解它并相应地生成数字。 一旦页面被渲染,例如code1被设置在数字4的哪里,生成数字4的位置,它在被解析之后来自该代码。 如果我们使用HtmlAgilityPack我们会看到java脚本代码,但不会看到它生成的输出。 有没有什么办法可以在呈现页面时读取它创建的标记?

解密加密文件时出现C#“Bad Data”exception

嘿,我对加密和解密很新,甚至是c#语言,说实话。 基本上,我有一个tcp聊天服务器,可以“保存”日志并加密文本文件。 这是我加密的方式(基于MSDN示例): public static void EncryptFile(string strInputFileName, string strOutputFileName, string strKey) { FileStream fsIn = new FileStream(strInputFileName, FileMode.Open, FileAccess.Read); FileStream fsOut = new FileStream(strOutputFileName, FileMode.Create, FileAccess.Write); DESCryptoServiceProvider des = new DESCryptoServiceProvider(); des.Key = ASCIIEncoding.ASCII.GetBytes(strKey); des.IV = ASCIIEncoding.ASCII.GetBytes(strKey); ICryptoTransform desencrypt = des.CreateEncryptor(); CryptoStream cryptostream = new CryptoStream(fsOut, desencrypt, CryptoStreamMode.Write); byte[] byteArrayInput = new byte[fsIn.Length – […]