[R] _String Encrypt
Posté : lun. 30 juin 2008 13:38
Bonjour à tous.
J'ai un petit programme qui a besoin pour fonctionner d'un .dat avec un mot de passe à l'interieur. Mot de passe crypté bien entendu. seulement voila, ce .dat est sur mon ftp disponible à tous ceux qui s'y connaissent un minimum. Si ils ont autoit, un coup de _stringencrypt et ils retrouvent ce mot de passe, la catastrophe pour moi. Alors je voulais savoir comment modifier cette fonction pour changer un peu sa façon de crypter. je l'ai analysée un peu mais je n'ai pas trouvé:)
Le cryptage se fait à mon avis sur cette ligne que je n'ai pas comprise totalement:
mais les lignes d'en dessous je n'y comprend rien du tout:)
Merci à tous ceux qui voudront bien m'aiderà comprendre ces lignes pour me permettre de modifier cette fonction.
Nb: Je sais qu'il est impossible de faire un encryptage parfait avec mes moyens, mais modifier un minimum cette fonction rendrait son utilisation beaucoup plus sure:)
J'ai un petit programme qui a besoin pour fonctionner d'un .dat avec un mot de passe à l'interieur. Mot de passe crypté bien entendu. seulement voila, ce .dat est sur mon ftp disponible à tous ceux qui s'y connaissent un minimum. Si ils ont autoit, un coup de _stringencrypt et ils retrouvent ce mot de passe, la catastrophe pour moi. Alors je voulais savoir comment modifier cette fonction pour changer un peu sa façon de crypter. je l'ai analysée un peu mais je n'ai pas trouvé:)
Le cryptage se fait à mon avis sur cette ligne que je n'ai pas comprise totalement:
Code : Tout sélectionner
$v_EncryptModified = $v_EncryptModified & Chr(BitXOR(Asc(StringMid($s_EncryptText, $i_EncryptCountG, 1)), Asc(StringMid($s_EncryptPassword, $i_EncryptCountH, 1)), 255))
Code : Tout sélectionner
Local $av_EncryptBox[256][2]
For $i_EncryptCountA = 0 To 255
$av_EncryptBox[$i_EncryptCountA][1] = Asc(StringMid($s_EncryptPassword, Mod($i_EncryptCountA, StringLen($s_EncryptPassword)) + 1, 1))
$av_EncryptBox[$i_EncryptCountA][0] = $i_EncryptCountA
Next
For $i_EncryptCountA = 0 To 255
$i_EncryptCountB = Mod(($i_EncryptCountB + $av_EncryptBox[$i_EncryptCountA][0] + $av_EncryptBox[$i_EncryptCountA][1]), 256)
$v_EncryptSwap = $av_EncryptBox[$i_EncryptCountA][0]
$av_EncryptBox[$i_EncryptCountA][0] = $av_EncryptBox[$i_EncryptCountB][0]
$av_EncryptBox[$i_EncryptCountB][0] = $v_EncryptSwap
Next
For $i_EncryptCountA = 1 To StringLen($s_EncryptText)
$i_EncryptCountC = Mod(($i_EncryptCountC + 1), 256)
$i_EncryptCountD = Mod(($i_EncryptCountD + $av_EncryptBox[$i_EncryptCountC][0]), 256)
$i_EncryptCountE = $av_EncryptBox[Mod(($av_EncryptBox[$i_EncryptCountC][0] + $av_EncryptBox[$i_EncryptCountD][0]), 256)][0]
$v_EncryptCipherBy = BitXOR(Asc(StringMid($s_EncryptText, $i_EncryptCountA, 1)), $i_EncryptCountE)
$v_EncryptCipher &= Hex($v_EncryptCipherBy, 2)
Next
$s_EncryptText = $v_EncryptCipher
Nb: Je sais qu'il est impossible de faire un encryptage parfait avec mes moyens, mais modifier un minimum cette fonction rendrait son utilisation beaucoup plus sure:)