İşte şu anki durumum - CodeDom'u kullanarak bir kod olarak alınan C# kodunu derleyen bir uygulamam var. Bir parola saklayan bir SecureString'im var ve bu SecureString değişkenini bir SecureString olarak derlenmiş koda aktarmanın herhangi bir yolu olup olmadığını merak ediyordum? İşte Bir değişkeni C# derleyici koduna iletebilir misiniz?
bazı örnek kod: Ben bunu yapmanın bir yolu bulamıyorSecureString securePassword = getSecurePass();
string codeString =
@"using System;
using System.Security;
namespace SomeProgram
{
class MyClass
{
static void Main(string[] args)
{
SecureString securePass = new SecureString();
// somehow set this equal to the securePassword variable
}
}
}";
// Compiler Code
CodeDomProvider codeProvider = CodeDomProvider.CreateProvider("CSharp");
string outFile = "output.exe";
System.CodeDom.Compiler.CompilerParameters parameters = new CompilerParameters();
parameters.GenerateExecutable = true;
parameters.OutputAssembly = outFile;
CompilerResults results = codeProvider.CompileAssemblyFromSource(parameters, codeString);
ve ben bu aslında mümkün olmadığını hayal ve bunun yerine muhtemelen sadece şifreli bir dosyada parola saklamalısınız ve bundan okuyor musunuz?
Bir exe yazıyorsunuz, bu nedenle de parolayı seri hale getirilmiş bir biçimde gömmek istiyorsunuz. Çalışan bir programa değer sağlamanız gibi değil. – GSerg
(Bu, şifrelenmiş bir blob içeren derlemenize [kaynak ekleyerek] (http://stackoverflow.com/q/13666956/11683) yapılabilir). – GSerg
@GSerg Bu dahice bir fikir, gerçek EXE'de yerleşik olan kaynaklar mı yoksa ayrı olarak (ayrı bir dosyada) saklanmaları gerekir, çünkü eğer ayrı olarak depolanırlarsa dizeyi şifreleyebilir ve bir txt'e gönderebilirim dosya? – Jake