COMO USAR O APP.CONFIG DO MODO CERTO?
Bom dia!
Determinado a melhorar meus códigos em .NET,
decidi armazenar minha [Ô]String de Configuração[Ô] no App.Config.
Criar o arquivo é simples e rápido.No entanto estou com dificuldade
em três coisas simples:
1.) Estou usando o VB.NET (2010) Express.Para ler a string de conexão no App.Config
estou tentando o seguinte :
Dim StringDeConexao As String
StringDeConexao = System.Configuration.ConfigurationSettings.AppSettings.Get([Ô]StringCon[Ô])
Mas não esta funcionando. Esta sintaxe esta correta?
2.) Gostaria de guardar a String de conexão [Ô]Criptograda[Ô] no App.Config.
Para isto, eu devo criptografar em separado a String de conexão,abrir e colocar manualmente
o texto criptografado no App.Config,ou existe um modo mais prático?
3.) Fazendo tudo isto,ou seja armazenando no App.cong e criptografando a String ,minha conexão
estara segura????
Agradeço qualquer orientação
Determinado a melhorar meus códigos em .NET,
decidi armazenar minha [Ô]String de Configuração[Ô] no App.Config.
Criar o arquivo é simples e rápido.No entanto estou com dificuldade
em três coisas simples:
1.) Estou usando o VB.NET (2010) Express.Para ler a string de conexão no App.Config
estou tentando o seguinte :
Dim StringDeConexao As String
StringDeConexao = System.Configuration.ConfigurationSettings.AppSettings.Get([Ô]StringCon[Ô])
Mas não esta funcionando. Esta sintaxe esta correta?
2.) Gostaria de guardar a String de conexão [Ô]Criptograda[Ô] no App.Config.
Para isto, eu devo criptografar em separado a String de conexão,abrir e colocar manualmente
o texto criptografado no App.Config,ou existe um modo mais prático?
3.) Fazendo tudo isto,ou seja armazenando no App.cong e criptografando a String ,minha conexão
estara segura????
Agradeço qualquer orientação
Faço mais ou menos a mesma coisa...
Porém tenho um modulo que criptografa as informações dentro do sistema, a unica coisa que eu informo no APP.CONFIG é a chave que irá gerar a senha...
O usuário e senha estão criptografados e com a chave (CHAVE_1234) dentro do meu sistema eu descriptorgrafo e tenho o usuário e senha
<appSettings>
<!-- CHAVE CRIPTOGRAFIA -->
<add key=[Ô]Key[Ô] value=[Ô]CHAVE_1234[Ô]/>
<!-- DOMINIO -->
<!-- USUARIOAD E USUARIOSENHAAD SÃO CRIPTOGRAFADOS -->
<add key=[Ô]UsuarioAD[Ô] value=[Ô]FonbDQ0Jvrgbv6VC5k58uw==[Ô]/>
<add key=[Ô]UsuarioSenhaAD[Ô] value=[Ô]l+3i2liXjVQ=[Ô]/>
</appSettings>
Porém tenho um modulo que criptografa as informações dentro do sistema, a unica coisa que eu informo no APP.CONFIG é a chave que irá gerar a senha...
O usuário e senha estão criptografados e com a chave (CHAVE_1234) dentro do meu sistema eu descriptorgrafo e tenho o usuário e senha
<appSettings>
<!-- CHAVE CRIPTOGRAFIA -->
<add key=[Ô]Key[Ô] value=[Ô]CHAVE_1234[Ô]/>
<!-- DOMINIO -->
<!-- USUARIOAD E USUARIOSENHAAD SÃO CRIPTOGRAFADOS -->
<add key=[Ô]UsuarioAD[Ô] value=[Ô]FonbDQ0Jvrgbv6VC5k58uw==[Ô]/>
<add key=[Ô]UsuarioSenhaAD[Ô] value=[Ô]l+3i2liXjVQ=[Ô]/>
</appSettings>
Pessoal,
Eu vi exemplos,na internet em que se criptografa o App.Config usando a própia classe [Ô]Configuration[Ô].
Mas,para ser sincero,eu gostaria de fazer como o colega ALEVALE fez.Ou seja,ler a String criptografada e
depois descriptografar no meu sistema.Mas,como nunca fiz isto,pergunto....
Tudo bem , descriptografar a String de conexão depois de ler do APP.Config,ou existe algum problema de segurança
neste modo de se trabalhar???
Eu vi exemplos,na internet em que se criptografa o App.Config usando a própia classe [Ô]Configuration[Ô].
Mas,para ser sincero,eu gostaria de fazer como o colega ALEVALE fez.Ou seja,ler a String criptografada e
depois descriptografar no meu sistema.Mas,como nunca fiz isto,pergunto....
Tudo bem , descriptografar a String de conexão depois de ler do APP.Config,ou existe algum problema de segurança
neste modo de se trabalhar???
pode falar aonde vc viu que também quero isso.
A pedidos....
CLASSE:
Imports System.Text
Imports System.Security.Cryptography
Imports System.Configuration
Public Class clsCriptografia
Private Shared TripleDES As New TripleDESCryptoServiceProvider
Private Shared MD5 As New MD5CryptoServiceProvider
Private Shared key As String = ConfigurationManager.AppSettings([Ô]ChaveCriptorgrafia[Ô]).ToString()
Public Shared Function MD5Hash(ByVal value As String) As Byte()
Try
Dim byteArray() As Byte = ASCIIEncoding.ASCII.GetBytes(value)
Return MD5.ComputeHash(byteArray)
Catch ex As Exception
fncGravaLog([Ô]MD5HASH[Ô], ex.StackTrace, ex.Message.ToString)
End Try
End Function
Public Shared Function Encrypt(ByVal stringToEncrypt As String) As String
Try
TripleDES.Key = clsCriptografia.MD5Hash(key)
TripleDES.Mode = CipherMode.ECB
Dim Buffer As Byte() = ASCIIEncoding.ASCII.GetBytes(stringToEncrypt)
Return Convert.ToBase64String(TripleDES.CreateEncryptor().TransformFinalBlock(Buffer, 0, Buffer.Length))
Catch ex As Exception
fncGravaLog([Ô]ENCRYPT[Ô], ex.StackTrace, ex.Message.ToString)
End
End Try
End Function
Public Shared Function Decrypt(ByVal encryptedString As String) As String
Try
TripleDES.Key = clsCriptografia.MD5Hash(key)
TripleDES.Mode = CipherMode.ECB
Dim Buffer As Byte() = Convert.FromBase64String(encryptedString)
Return ASCIIEncoding.ASCII.GetString(TripleDES.CreateDecryptor().TransformFinalBlock(Buffer, 0, Buffer.Length))
Catch ex As Exception
fncGravaLog([Ô]DECRYPT[Ô], ex.StackTrace, ex.Message.ToString)
End
Return String.Empty
End Try
End Function
End Class
FUNÇÃO:
[ô][ô][ô] <summary>
[ô][ô][ô] DESCRIPTOGRAFA AS INFORMAÇÕES DE USUÃRIO E SENHA
[ô][ô][ô] </summary>
[ô][ô][ô] <returns>USUÃRIO E SENHA DESCRIPTOGRAFADOS</returns>
Public Function fncCriptografia()
Try
ConfigurationManager.RefreshSection([Ô]appSettings[Ô])
strUsuarioCriptografiaAD = clsCriptografia.Decrypt(ConfigurationManager.AppSettings([Ô]UsuarioAD[Ô]).ToString())
strSenhaCriptografiaAD = clsCriptografia.Decrypt(ConfigurationManager.AppSettings([Ô]UsuarioSenhaAD[Ô]).ToString())
Catch ex As Exception
fncGravaLog([Ô]FNCCRIPTOGRAFIA[Ô], ex.StackTrace, ex.Message.ToString)
End Try
End Function
[ô]VARIAVEIS
[ô]VARIAVEIS CRIPTOGRAFIA
Public Const ENCRYPT = 1
Public DECRYPT = 2
Public strUsuarioCriptografiaAD As String
Public strSenhaCriptografiaAD As String
CLASSE:
Imports System.Text
Imports System.Security.Cryptography
Imports System.Configuration
Public Class clsCriptografia
Private Shared TripleDES As New TripleDESCryptoServiceProvider
Private Shared MD5 As New MD5CryptoServiceProvider
Private Shared key As String = ConfigurationManager.AppSettings([Ô]ChaveCriptorgrafia[Ô]).ToString()
Public Shared Function MD5Hash(ByVal value As String) As Byte()
Try
Dim byteArray() As Byte = ASCIIEncoding.ASCII.GetBytes(value)
Return MD5.ComputeHash(byteArray)
Catch ex As Exception
fncGravaLog([Ô]MD5HASH[Ô], ex.StackTrace, ex.Message.ToString)
End Try
End Function
Public Shared Function Encrypt(ByVal stringToEncrypt As String) As String
Try
TripleDES.Key = clsCriptografia.MD5Hash(key)
TripleDES.Mode = CipherMode.ECB
Dim Buffer As Byte() = ASCIIEncoding.ASCII.GetBytes(stringToEncrypt)
Return Convert.ToBase64String(TripleDES.CreateEncryptor().TransformFinalBlock(Buffer, 0, Buffer.Length))
Catch ex As Exception
fncGravaLog([Ô]ENCRYPT[Ô], ex.StackTrace, ex.Message.ToString)
End
End Try
End Function
Public Shared Function Decrypt(ByVal encryptedString As String) As String
Try
TripleDES.Key = clsCriptografia.MD5Hash(key)
TripleDES.Mode = CipherMode.ECB
Dim Buffer As Byte() = Convert.FromBase64String(encryptedString)
Return ASCIIEncoding.ASCII.GetString(TripleDES.CreateDecryptor().TransformFinalBlock(Buffer, 0, Buffer.Length))
Catch ex As Exception
fncGravaLog([Ô]DECRYPT[Ô], ex.StackTrace, ex.Message.ToString)
End
Return String.Empty
End Try
End Function
End Class
FUNÇÃO:
[ô][ô][ô] <summary>
[ô][ô][ô] DESCRIPTOGRAFA AS INFORMAÇÕES DE USUÃRIO E SENHA
[ô][ô][ô] </summary>
[ô][ô][ô] <returns>USUÃRIO E SENHA DESCRIPTOGRAFADOS</returns>
Public Function fncCriptografia()
Try
ConfigurationManager.RefreshSection([Ô]appSettings[Ô])
strUsuarioCriptografiaAD = clsCriptografia.Decrypt(ConfigurationManager.AppSettings([Ô]UsuarioAD[Ô]).ToString())
strSenhaCriptografiaAD = clsCriptografia.Decrypt(ConfigurationManager.AppSettings([Ô]UsuarioSenhaAD[Ô]).ToString())
Catch ex As Exception
fncGravaLog([Ô]FNCCRIPTOGRAFIA[Ô], ex.StackTrace, ex.Message.ToString)
End Try
End Function
[ô]VARIAVEIS
[ô]VARIAVEIS CRIPTOGRAFIA
Public Const ENCRYPT = 1
Public DECRYPT = 2
Public strUsuarioCriptografiaAD As String
Public strSenhaCriptografiaAD As String
Coloquei um exemplo em anexo.
Tópico encerrado , respostas não são mais permitidas