Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में संग्रहीत MD5 स्ट्रिंग को दशमलव मान में कैसे बदलें?

MySQL CONV() और CAST(): हेक्साडेसिमल MD5 को दशमलव में बदलना

MD5 हैश 32 अक्षरों का हेक्साडेसिमल स्ट्रिंग होता है। MySQL में CONV() फंक्शन (बेस परिवर्तन) और CAST() का उपयोग करके इसे दशमलव (बेस 10) में बदला जा सकता है।

उदाहरण: MD5 को दशमलव में बदलें

टेबल बनाएं:

CREATE TABLE DemoTable (Password TEXT);
INSERT INTO DemoTable VALUES 
('a5391e96f8d48a62e8c85381df108e98'),
('ea7a32d2dc5bb793af262dcb6ea1a54d');

रूपांतरण क्वेरी

SELECT 
    CAST(CONV(SUBSTR(Password, 1, 16), 16, 10) AS DECIMAL(65)) * 18446744073709551616 
    + CAST(CONV(SUBSTR(Password, 17, 16), 16, 10) AS DECIMAL(65)) 
    AS DecimalValue 
FROM DemoTable;

परिणाम:

+-----------------------------------------+
| DecimalValue                            |
+-----------------------------------------+
| 219619200658969319114298942978912194200 |
| 311673842057003455136843080376797734221 |
+-----------------------------------------+

चरण-दर-चरण व्याख्या

  1. SUBSTR(Password, 1, 16) — पहले 16 हेक्स अक्षर (उच्च 64 बिट)
  2. SUBSTR(Password, 17, 16) — अगले 16 हेक्स अक्षर (निम्न 64 बिट)
  3. CONV(..., 16, 10) — हेक्स (बेस 16) से दशमलव (बेस 10) में बदलें
  4. CAST(... AS DECIMAL(65)) — बड़ी संख्या के लिए डेसीमल टाइप में कास्ट
  5. उच्च भाग × 2⁶⁴ + निम्न भाग = पूर्ण 128-बिट मान
  6. 18446744073709551616 = 2⁶⁴

सरल विकल्प: केवल तुलना के लिए

यदि केवल तुलना/सॉर्टिंग के लिए चाहिए, तो हेक्स स्ट्रिंग पर सीधे काम करें:

SELECT CAST(CONV(Password, 16, 10) AS UNSIGNED) FROM DemoTable;

नोट: 128-बिट मान UNSIGNED BIGINT (64-बिट) में फिट नहीं होगा।

उपयोग केस

  • लेगेसी सिस्टम इंटीग्रेशन जहां दशमलव ID आवश्यक
  • कुछ क्रिप्टोग्राफिक गणनाएं
  • आमतौर पर MD5 को हेक्स स्ट्रिंग या बाइनरी (UNHEX) के रूप में स्टोर करना बेहतर
  1. - MySQL में स्टोर्ड प्रोसीजर में IF ELSE लागू करें?

    IF-ELSE लागू करने के लिए, सिंटैक्स निम्न है: if yourCondition then yourStatement1; else yourStatement2; end if ; स्टोर्ड प्रोसीजर में IF-ELSE की उपरोक्त अवधारणा को समझने के लिए, आइए एक स्टोर्ड प्रोसीजर बनाते हैं: mysql> delimiter // mysql> create procedure If_else_stored_demo(value in

  1. - C++ में हेक्साडेसिमल वैल्यू स्ट्रिंग को ASCII वैल्यू स्ट्रिंग में बदलना

    इस ट्यूटोरियल में, हम हेक्साडेसिमल वैल्यू स्ट्रिंग को ASCII वैल्यू स्ट्रिंग में बदलने के प्रोग्राम पर चर्चा करेंगे।इसके लिए हमें कुछ हेक्साडेसिमल मानों वाली एक स्ट्रिंग दी जाएगी। हमारा कार्य उस हेक्साडेसिमल मान को लेकर उसे समतुल्य ASCII मानों में बदलना है।उदाहरण#include <bits/stdc++.h> using n

  1. - C# प्रोग्राम: Int32 मान को डेसीमल में बदलें

    Int32 मान को डेसीमल में बदलने के लिए, Convert.ToDecimal() विधि का उपयोग करें। Int32 एक 32-बिट साइन्ड इंटीजर को दर्शाता है। मान लीजिए निम्न हमारा Int32 मान है। int val = 2923; अब इसे डेसीमल में बदलने के लिए। decimal decVal = Convert.ToDecimal(val); आइए पूरा उदाहरण देखें। उदाहरण using System; public