Texte initial -> Rallongé si nécessaire.
Texte ASCII converti en sa valeur (Uniquement les deux derniers chiffres [Ex: 122 -> 22])
Les chiffres sont trié en 10 groupes (le n eme chiffre ira dans le groupe n%10)
Multiplication des 10 nombres
Découpage par groupe de 2 nombres
Si < 10, multiplié par 6.
Si > 62, %62
Retranscription en fonction de l'ID suivant le tableau
length = 20
intToChar = ["s","N","m","z","1","t","b","O","R","4","0","u","p","Z","T","2","V","M","J","G","e","P","U","h","j","X","E","w","a","q","9","D","L","f","6","g","y","3","o","n","d","i","Q","k","5","H","x","l","B","W","K","c","S","A","r","7","v","Y","F","C","I","8"]
def hash(text):
print(text)
val = textToVal(text)
print(val)
it = valToInt(val)
print(it)
code = intToCode(it)
print(code)
cut = intToCut(code)
print(cut)
char = cutToChar(cut)
return char
def textToVal(text):
val = ''.join(str(ord(c))[-2:] for c in text)
if len(val) >= 46:
return val
else:
bonus = ""
j=0
for i in range(0,(46-len(val))):
j+=1
if j > (len(val)-1):
j=0
od = ord(val[j])%46
bonus += str(ord(intToChar[od]))[-2:]
return bonus + val
def valToInt(val):
tabs = [[],[],[],[],[],[],[],[],[],[]]
i = 0
for v in val:
tabs[i].append(v)
i+=1
i=i%10
tfin = []
i = 0
for tab in tabs:
try:
tfin[i] = ''.join(tab)
except IndexError:
tfin.append(''.join(tab))
i+=1
i=i%10
res = 1
for v in tfin:
try:
if v > 0:
res*=int(v)
except ValueError:
res=res
return res
def intToCode(intval):
intval = int(intval)
i = intval%(2**int((length/10)*64))
return str(i)
def intToCut(code):
tab = []
i = 0
for v in code:
try:
tab[i] += v
except IndexError:
tab.append(v)
if len(tab[i]) >= 2:
i+=1
return tab
def cutToChar(cut):
res = ""
for v in cut:
v = int(v)
v = v%62
if v < 10:
v*=6
res += intToChar[v]
return res
print(hash("Bonjour"))
Presque toute la sécurité est base sur la complexité de retrouver les 10 facteurs qui sont multiplié. Est-ce une bonne sécurité ?
J'ai tenté d'appliqué ces règles au mieux:
Le moindre changement a une grande influence
Longueur de la chaîne final indépendante de la longueur de la chaîne de départ.
Cordialement,
- Edité par Bhasher 19 novembre 2017 à 17:21:40
CodeWe is an open-source live code-sharing website.
Fonction de hachage
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
CodeWe is an open-source live code-sharing website.