2013-01-08 2 views
3

Je souhaite utiliser une colonne contenant la chaîne codée avec base64_encode() comme clé primaire. Mais je n'ai pas pu apprendre que si la même chaîne obtient des valeurs différentes lorsqu'elle est codée avec base64_encode(). Dois-je vérifier l'existence de la clé en utilisant une chaîne codée dans les requêtes sql ou devrais-je obtenir toutes les valeurs de DB et les décoder un par un pour voir si cette clé existe? Cela dépend de savoir si la fonction base64_encode() crée toujours la même sortie pour une chaîne donnée. Le fait?Est-ce que base64_encode() Valeurs pour Same String Differ?

Merci d'avance.

+1

Oui - base64 transforme les données binaires à une chaîne en utilisant un sous-ensemble de sécurité ASCII – JeffS

Répondre

3

Oui, produit toujours la même sortie la fonction base64_encode() pour une chaîne donnée. C'est ce qu'on appelle la fonction déterministe ou l'algorithme déterministe.

http://en.wikipedia.org/wiki/Deterministic_algorithm

+0

» ... étant donné une entrée particulière, produira toujours la même sortie ". merci pour l'URL de la source. – kubilay

1

base64_encode est cohérente et renvoie les mêmes valeurs pour la même entrée

2

base64 code toujours des données de la même manière, notez que le codage original de chaîne peut produire dans différents base64.

Pourquoi quelqu'un terre utiliserait une base64 chaînes codées comme PK me bat si

+0

ouais, ça me bat aussi. Je suppose que je n'aurai pas de problème puisque j'ai l'intention d'utiliser seulement base64_encode() et base64_decode() sans paramètres etc. – kubilay