CRIPTOGRAFIA
Olá pessola blz. Olha venho novamente pedir ajuda do veras aqui, estou usando uma classe para criptografar uma senha, mais as informação são gravadas em um arquivo ini, pois ainda não fiz algo para gravar no ini os dados criptografados. Alguém poderia mim ajuda. Agradeço muito.
Class
Public Function CriptSenha(Psenha As String) As Variant
Dim v_sqlerrm As String
Dim SenhaCript As String
Dim var1 As String
Const MIN_ASC = 32
Const MAX_ASC = 126
Const NUM_ASC = MAX_ASC - MIN_ASC + 1
chave = 2001 [ô][ô]qualquer nº para montar o algorÃtimo da criptografia
Dim offset As Long
Dim str_len As Integer
Dim i As Integer
Dim ch As Integer
to_text = [Ô][Ô]
offset = NumericPassword(chave)
Rnd -1
Randomize offset
str_len = Len(Psenha)
For i = 1 To str_len
ch = Asc(Mid$(Psenha, i, 1))
If ch >= MIN_ASC And ch <= MAX_ASC Then
ch = ch - MIN_ASC
offset = Int((NUM_ASC + 1) * Rnd)
ch = ((ch + offset) Mod NUM_ASC)
ch = ch + MIN_ASC
to_text = to_text & Chr$(ch)
End If
Next i
CriptSenha = to_text
End Function
Private Function NumericPassword(ByVal password As String) As Long
Dim value As Long
Dim ch As Long
Dim shift1 As Long
Dim shift2 As Long
Dim i As Integer
Dim str_len As Integer
str_len = Len(password)
For i = 1 To str_len
[ô] Adiciona a próxima letra
ch = Asc(Mid$(password, i, 1))
value = value Xor (ch * 2 ^ shift1)
value = value Xor (ch * 2 ^ shift2)
[ô] Change the shift offsets.
shift1 = (shift1 + 7) Mod 19
shift2 = (shift2 + 13) Mod 23
Next i
NumericPassword = value
End Function
Gravar e Ler os dos dados no arquivo ini
Private Sub LoadData()
LocalServidor = PegaStrDoIni([Ô]SYSServidorLocal[Ô], [Ô]Valor[Ô], App.Path + [Ô]\[Ô] + [Ô]CompacSystem.ini[Ô])
LocalPorta = PegaStrDoIni([Ô]SYSPortaLocal[Ô], [Ô]Valor[Ô], App.Path + [Ô]\[Ô] + [Ô]CompacSystem.ini[Ô])
LocalUsuario = PegaStrDoIni([Ô]SYSUsuarioLocal[Ô], [Ô]Valor[Ô], App.Path + [Ô]\[Ô] + [Ô]CompacSystem.ini[Ô])
LocalSenha = PegaStrDoIni([Ô]SYSSenhaLocal[Ô], [Ô]Valor[Ô], App.Path + [Ô]\[Ô] + [Ô]CompacSystem.ini[Ô])
LocalCaminho = PegaStrDoIni([Ô]SYSCaminhoLocal[Ô], [Ô]Valor[Ô], App.Path + [Ô]\[Ô] + [Ô]CompacSystem.ini[Ô])
txt_Servidor.Text = LocalServidor
txt_Porta.Text = LocalPorta
txt_Usuario.Text = LocalUsuario
txt_Senha.Text = LocalSenha
txt_Caminho.Text = LocalCaminho
End Sub
Private Sub WiretData()
Call WriteINI([Ô]SYSServidorLocal[Ô], [Ô]Valor[Ô], txt_Servidor.Text, App.Path + [Ô]\[Ô] + [Ô]CompacSystem.ini[Ô])
Call WriteINI([Ô]SYSPortaLocal[Ô], [Ô]Valor[Ô], txt_Porta.Text, App.Path + [Ô]\[Ô] + [Ô]CompacSystem.ini[Ô])
Call WriteINI([Ô]SYSUsuarioLocal[Ô], [Ô]Valor[Ô], txt_Usuario.Text, App.Path + [Ô]\[Ô] + [Ô]CompacSystem.ini[Ô])
Call WriteINI([Ô]SYSSenhaLocal[Ô], [Ô]Valor[Ô], txt_Senha.Text, App.Path + [Ô]\[Ô] + [Ô]CompacSystem.ini[Ô])
Call WriteINI([Ô]SYSCaminhoLocal[Ô], [Ô]Valor[Ô], txt_Caminho.Text, App.Path + [Ô]\[Ô] + [Ô]CompacSystem.ini[Ô])
Call WriteINI([Ô]SysCompacFormat[Ô], [Ô]Valor[Ô], FormaCompac, App.Path + [Ô]\[Ô] + [Ô]CompacSystem.ini[Ô])
End Sub
Class
Public Function CriptSenha(Psenha As String) As Variant
Dim v_sqlerrm As String
Dim SenhaCript As String
Dim var1 As String
Const MIN_ASC = 32
Const MAX_ASC = 126
Const NUM_ASC = MAX_ASC - MIN_ASC + 1
chave = 2001 [ô][ô]qualquer nº para montar o algorÃtimo da criptografia
Dim offset As Long
Dim str_len As Integer
Dim i As Integer
Dim ch As Integer
to_text = [Ô][Ô]
offset = NumericPassword(chave)
Rnd -1
Randomize offset
str_len = Len(Psenha)
For i = 1 To str_len
ch = Asc(Mid$(Psenha, i, 1))
If ch >= MIN_ASC And ch <= MAX_ASC Then
ch = ch - MIN_ASC
offset = Int((NUM_ASC + 1) * Rnd)
ch = ((ch + offset) Mod NUM_ASC)
ch = ch + MIN_ASC
to_text = to_text & Chr$(ch)
End If
Next i
CriptSenha = to_text
End Function
Private Function NumericPassword(ByVal password As String) As Long
Dim value As Long
Dim ch As Long
Dim shift1 As Long
Dim shift2 As Long
Dim i As Integer
Dim str_len As Integer
str_len = Len(password)
For i = 1 To str_len
[ô] Adiciona a próxima letra
ch = Asc(Mid$(password, i, 1))
value = value Xor (ch * 2 ^ shift1)
value = value Xor (ch * 2 ^ shift2)
[ô] Change the shift offsets.
shift1 = (shift1 + 7) Mod 19
shift2 = (shift2 + 13) Mod 23
Next i
NumericPassword = value
End Function
Gravar e Ler os dos dados no arquivo ini
Private Sub LoadData()
LocalServidor = PegaStrDoIni([Ô]SYSServidorLocal[Ô], [Ô]Valor[Ô], App.Path + [Ô]\[Ô] + [Ô]CompacSystem.ini[Ô])
LocalPorta = PegaStrDoIni([Ô]SYSPortaLocal[Ô], [Ô]Valor[Ô], App.Path + [Ô]\[Ô] + [Ô]CompacSystem.ini[Ô])
LocalUsuario = PegaStrDoIni([Ô]SYSUsuarioLocal[Ô], [Ô]Valor[Ô], App.Path + [Ô]\[Ô] + [Ô]CompacSystem.ini[Ô])
LocalSenha = PegaStrDoIni([Ô]SYSSenhaLocal[Ô], [Ô]Valor[Ô], App.Path + [Ô]\[Ô] + [Ô]CompacSystem.ini[Ô])
LocalCaminho = PegaStrDoIni([Ô]SYSCaminhoLocal[Ô], [Ô]Valor[Ô], App.Path + [Ô]\[Ô] + [Ô]CompacSystem.ini[Ô])
txt_Servidor.Text = LocalServidor
txt_Porta.Text = LocalPorta
txt_Usuario.Text = LocalUsuario
txt_Senha.Text = LocalSenha
txt_Caminho.Text = LocalCaminho
End Sub
Private Sub WiretData()
Call WriteINI([Ô]SYSServidorLocal[Ô], [Ô]Valor[Ô], txt_Servidor.Text, App.Path + [Ô]\[Ô] + [Ô]CompacSystem.ini[Ô])
Call WriteINI([Ô]SYSPortaLocal[Ô], [Ô]Valor[Ô], txt_Porta.Text, App.Path + [Ô]\[Ô] + [Ô]CompacSystem.ini[Ô])
Call WriteINI([Ô]SYSUsuarioLocal[Ô], [Ô]Valor[Ô], txt_Usuario.Text, App.Path + [Ô]\[Ô] + [Ô]CompacSystem.ini[Ô])
Call WriteINI([Ô]SYSSenhaLocal[Ô], [Ô]Valor[Ô], txt_Senha.Text, App.Path + [Ô]\[Ô] + [Ô]CompacSystem.ini[Ô])
Call WriteINI([Ô]SYSCaminhoLocal[Ô], [Ô]Valor[Ô], txt_Caminho.Text, App.Path + [Ô]\[Ô] + [Ô]CompacSystem.ini[Ô])
Call WriteINI([Ô]SysCompacFormat[Ô], [Ô]Valor[Ô], FormaCompac, App.Path + [Ô]\[Ô] + [Ô]CompacSystem.ini[Ô])
End Sub
eu acho que voce nao esta sabendo usar a funcao
entao vamos la
primeiro nao cole a funcao em um classmodule mas sim em um module
o codigo completo incluindo a escrita e leitura em arquivo ini e este:
para usar em seu arquivo ini e facil veja
para criptografar seria ssim
para ler estes dados descriptografando seria assim
veja bem fiz algumas alteracoes apenas para melhorar o entendimento
veja se funciona ao contento
entao vamos la
primeiro nao cole a funcao em um classmodule mas sim em um module
o codigo completo incluindo a escrita e leitura em arquivo ini e este:
[ô]****************** INICIO leitura e escrita em arquivo INI
Declare Function WritePrivateProfileString Lib [Ô]kernel32[Ô] Alias [Ô]WritePrivateProfileStringA[Ô] (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
Declare Function GetPrivateProfileString Lib [Ô]kernel32[Ô] Alias [Ô]GetPrivateProfileStringA[Ô] (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Public Ret As String
Public Sub GravarINI(filename As String, Section As String, Key As String, Text As String)
WritePrivateProfileString Section, Key, Text, filename
End Sub
Public Function LerINI(filename As String, Section As String, Key As String)
Ret = Space$(255)
RetLen = GetPrivateProfileString(Section, Key, [Ô][Ô], Ret, Len(Ret), filename)
Ret = Left$(Ret, RetLen)
ReadINI = Ret
End Function
Public Function CriptSenha(Psenha As String) As Variant
Dim v_sqlerrm As String
Dim SenhaCript As String
Dim var1 As String
Const MIN_ASC = 32
Const MAX_ASC = 126
Const NUM_ASC = MAX_ASC - MIN_ASC + 1
chave = 2001 [ô][ô]qualquer nº para montar o algorÃtimo da criptografia
Dim offset As Long
Dim str_len As Integer
Dim i As Integer
Dim ch As Integer
to_text = [Ô][Ô]
offset = NumericPassword(chave)
Rnd -1
Randomize offset
str_len = Len(Psenha)
For i = 1 To str_len
ch = Asc(Mid$(Psenha, i, 1))
If ch >= MIN_ASC And ch <= MAX_ASC Then
ch = ch - MIN_ASC
offset = Int((NUM_ASC + 1) * Rnd)
ch = ((ch + offset) Mod NUM_ASC)
ch = ch + MIN_ASC
to_text = to_text & Chr$(ch)
End If
Next i
CriptSenha = to_text
End Function
Public Function DeCriptSenha(Psenha As String) As Variant
Dim v_sqlerrm As String
Dim SenhaCript As String
Dim var1 As String
Const MIN_ASC = 32 [ô] Space.
Const MAX_ASC = 126 [ô] ~.
Const NUM_ASC = MAX_ASC - MIN_ASC + 1
chave = 2001 [ô][ô]qualquer nº para montar o algorÃtimo da criptografia
Dim offset As Long
Dim str_len As Integer
Dim i As Integer
Dim ch As Integer
to_text = [Ô][Ô]
offset = NumericPassword(chave)
Rnd -1
Randomize offset
str_len = Len(Psenha)
For i = 1 To str_len
ch = Asc(Mid$(Psenha, i, 1))
If ch >= MIN_ASC And ch <= MAX_ASC Then
ch = ch - MIN_ASC
offset = Int((NUM_ASC + 1) * Rnd)
ch = ((ch - offset) Mod NUM_ASC)
If ch < 0 Then ch = ch + NUM_ASC
ch = ch + MIN_ASC
to_text = to_text & Chr$(ch)
End If
Next i
DeCriptSenha = to_text
End Function
Private Function NumericPassword(ByVal password As String) As Long
Dim value As Long
Dim ch As Long
Dim shift1 As Long
Dim shift2 As Long
Dim i As Integer
Dim str_len As Integer
str_len = Len(password)
For i = 1 To str_len
[ô] Adiciona a próxima letra
ch = Asc(Mid$(password, i, 1))
value = value Xor (ch * 2 ^ shift1)
value = value Xor (ch * 2 ^ shift2)
[ô] Change the shift offsets.
shift1 = (shift1 + 7) Mod 19
shift2 = (shift2 + 13) Mod 23
Next i
NumericPassword = value
End Function
para usar em seu arquivo ini e facil veja
para criptografar seria ssim
Private Sub GravarDados()
[ô] para gravar seria assim
[ô] GravarINI([Nome_do_arquivo_ini], [sessao], [chave], [texto]
GravarINI App.Path & [Ô]\CompacSystem.ini[Ô], [Ô]SYSServidorLocal[Ô], [Ô]Valor[Ô], txt_Servidor.Text
GravarINI App.Path & [Ô]\CompacSystem.ini[Ô],[Ô]SYSPortaLocal[Ô], [Ô]Valor[Ô], txt_Porta.Text
GravarINI App.Path & [Ô]\CompacSystem.ini[Ô], [Ô]SYSUsuarioLocal[Ô], [Ô]Valor[Ô], txt_Usuario.Text
GravarINI App.Path & [Ô]\CompacSystem.ini[Ô],[Ô]SYSSenhaLocal[Ô], [Ô]Valor[Ô], CriptSenha(txt_Senha.Text)
GravarINI App.Path & [Ô]\CompacSystem.ini[Ô],[Ô]SYSCaminhoLocal[Ô], [Ô]Valor[Ô], txt_Caminho.Text
GravarINI App.Path & [Ô]\CompacSystem.ini[Ô],[Ô]SysCompacFormat[Ô], [Ô]Valor[Ô], FormaCompac
End Sub
para ler estes dados descriptografando seria assim
Private Sub LoadData()
[ô] para ler seira assim
LerINI ([nome_do_arquivo_ini],[sessao] , [chave})
LLocalServidor = LerINI(App.Path & [Ô]\CompacSystem.ini[Ô],[Ô]SYSServidorLocal[Ô], [Ô]Valor[Ô])
LocalPorta = LerINI(App.Path & [Ô]\CompacSystem.ini[Ô][Ô]SYSPortaLocal[Ô], [Ô]Valor[Ô])
LocalUsuario = LerINI(App.Path & [Ô]\CompacSystem.ini[Ô],[Ô]SYSUsuarioLocal[Ô], [Ô]Valor[Ô])
LocalSenha = DeCriptSenha( LerINI(App.Path & [Ô]\CompacSystem.ini[Ô],[Ô]SYSSenhaLocal[Ô], [Ô]Valor[Ô]))
LocalCaminho = LerINI(App.Path & [Ô]\CompacSystem.ini[Ô],[Ô]SYSCaminhoLocal[Ô], [Ô]Valor[Ô])
txt_Servidor.Text = LocalServidor
txt_Porta.Text = LocalPorta
txt_Usuario.Text = LocalUsuario
txt_Senha.Text = LocalSenha
txt_Caminho.Text = LocalCaminho
End Sub
veja bem fiz algumas alteracoes apenas para melhorar o entendimento
veja se funciona ao contento
Grande Marcelo Blz. Olha já tenho essa função em modulo, o sistema já ler e gravar normal, mais seu a função de criptografia e descriptografia, gostaria de acrescentar essa função para criptografar a senha grando gravar.
declarei as seguintes variáveis
Dim LocalCode As String, LocalNome As String
Dim LocalServidor As String, LocalUsuario As String, LocalSenha As String, LocalCaminho As String, LocalPorta As String
Dim Diretorio As String, PastaDescarga As String, PastaEnvio As String, PastaBackup As String
Gostaria de colocar a função de criptografia e descriptografia apenas nessas linhas.
LocalSenha = PegaStrDoIni([Ô]SYSSenhaLocal[Ô], [Ô]Valor[Ô], App.Path + [Ô]\[Ô] + [Ô]CompacSystem.ini[Ô])
Call WriteINI([Ô]SYSSenhaLocal[Ô], [Ô]Valor[Ô], txt_Senha.Text, App.Path + [Ô]\[Ô] + [Ô]CompacSystem.ini[Ô]
Agradeço
declarei as seguintes variáveis
Dim LocalCode As String, LocalNome As String
Dim LocalServidor As String, LocalUsuario As String, LocalSenha As String, LocalCaminho As String, LocalPorta As String
Dim Diretorio As String, PastaDescarga As String, PastaEnvio As String, PastaBackup As String
Gostaria de colocar a função de criptografia e descriptografia apenas nessas linhas.
LocalSenha = PegaStrDoIni([Ô]SYSSenhaLocal[Ô], [Ô]Valor[Ô], App.Path + [Ô]\[Ô] + [Ô]CompacSystem.ini[Ô])
Call WriteINI([Ô]SYSSenhaLocal[Ô], [Ô]Valor[Ô], txt_Senha.Text, App.Path + [Ô]\[Ô] + [Ô]CompacSystem.ini[Ô]
Agradeço
assim colega
LocalSenha = DeCriptSenha(PegaStrDoIni([Ô]SYSSenhaLocal[Ô], [Ô]Valor[Ô], App.Path + [Ô]\[Ô] + [Ô]CompacSystem.ini[Ô]))
Call WriteINI([Ô]SYSSenhaLocal[Ô], [Ô]Valor[Ô],CriptSenha(txt_Senha.Text), App.Path + [Ô]\[Ô] + [Ô]CompacSystem.ini[Ô]
LocalSenha = DeCriptSenha(PegaStrDoIni([Ô]SYSSenhaLocal[Ô], [Ô]Valor[Ô], App.Path + [Ô]\[Ô] + [Ô]CompacSystem.ini[Ô]))
Call WriteINI([Ô]SYSSenhaLocal[Ô], [Ô]Valor[Ô],CriptSenha(txt_Senha.Text), App.Path + [Ô]\[Ô] + [Ô]CompacSystem.ini[Ô]
Agora sim, Muito obrigado Mercelo.
Tópico encerrado , respostas não são mais permitidas