Je tente de hacher une chaîne à une valeur de 64 bits (bigint) dans MySQL. Je suis conscient de la fonction MD5(), qui renvoie un hachage de 128 bits en tant que chaîne binaire. Je serais heureux de prendre les 64 derniers bits de ce résultat. Cependant, je ne peux pas comprendre comment passer d'un type de chaîne binaire à un type numérique quelconque. Des pointeurs?Convertir la chaîne binaire en bigint dans MySQL?
8
A
Répondre
14
Utilisez la fonction CONV()
pour convertir le hachage MD5 de la base 16 à la base 10 et CAST
pour le convertir en un certain nombre:
select cast(conv(substring(md5(id), 1, 16), 16, 10) as unsigned integer) from SomeTable;
2
CREATE FUNCTION dbo.HexStrToVarBinary(@hexstr varchar(8000))
RETURNS varbinary(8000)
AS
BEGIN
DECLARE @hex char(1), @i int, @place bigint, @a bigint
SET @i = LEN(@hexstr)
set @place = convert(bigint,1)
SET @a = convert(bigint, 0)
WHILE (@i > 0 AND (substring(@hexstr, @i, 1) like '[0-9A-Fa-f]'))
BEGIN
SET @hex = SUBSTRING(@hexstr, @i, 1)
SET @a = @a +
convert(bigint, CASE WHEN @hex LIKE '[0-9]'
THEN CAST(@hex as int)
ELSE CAST(ASCII(UPPER(@hex))-55 as int) end * @place)
set @place = @place * convert(bigint,16)
SET @i = @i - 1
END
RETURN convert(varbinary(8000),@a)
END
GO
+0
de Nice! J'espérais qu'il y avait quelque chose de intégré. –
+0
Maintenant, l'inverse s'il vous plaît: D: @ :) –
Questions connexes
- 1. Convertir un nombre en chaîne binaire
- 2. Comment convertir une chaîne en binaire dans Teradata?
- 3. Convertir une chaîne de base25 à chaîne binaire en Java
- 4. Comment convertir une chaîne en ascii en binaire en C#?
- 5. Comment convertir une chaîne binaire en nombre en Perl?
- 6. Comment inverser la chaîne en binaire
- 7. Convertir l'image en binaire?
- 8. SQL Server Convertir un entier en chaîne binaire
- 9. comment convertir la chaîne en fichier entier binaire en utilisant la ligne de commande sous Linux
- 10. Convertir la chaîne en SecureString
- 11. Comment faire pour convertir NSInteger à une valeur (chaîne) binaire
- 12. GD obtient l'image de la chaîne binaire
- 13. Dans Sql Server, comment convertir des chaînes binaires en binaire?
- 14. Comment puis-je convertir une chaîne binaire codée en caractères hexadécimaux dans SQL Server?
- 15. IPhone - UIImage à chaîne binaire
- 16. C++ Conversion d'une valeur binaire en octets en une chaîne
- 17. Comment convertir la représentation décimale d'une adresse IP en binaire?
- 18. SQL Server convertir la chaîne en datetime
- 19. comment convertir la chaîne en datetime
- 20. Convertir la chaîne en double - VB
- 21. Convertir une matrice décimale en une matrice binaire dans SciPy
- 22. ruby / mysql mysql_adapter.rb: 505: dans 'real_connect': impossible de convertir la chaîne en entier
- 23. convertir la chaîne en char c
- 24. convertir la chaîne en long long
- 25. Convertir SQL Server signé int en binaire (4)
- 26. asp.net Convertir une chaîne CSV en chaîne []
- 27. Ruby: Comment convertir une chaîne en binaire et à écrire à un fichier
- 28. convertir la chaîne à datetime dans ado.net
- 29. Convertir une chaîne en streaming
- 30. NHibernate: Convertir Guid en chaîne dans la requête
Nice, c'est ce que je cherche. Je pense que je n'ai pas besoin de la distribution, ou que je veux lancer à bigint, mais la fonction conv() était vraiment ce qui me manquait. –
Une note finale. J'accédais alors à cette valeur numérique en tant que long en Java. Les types entiers Java sont signés et le résultat de conv() est toujours positif, ce qui signifie qu'il déborde dans certains cas. Pour ceux qui l'utilisent comme un long signé, vous avez besoin de la distribution, et le lancer à 'signé' fait l'affaire. –