This article mainly analyzes the .NET MD5 encryption and decryption code in detail, which has certain reference value. Interested friends can refer to
MD5 Introduction:
It allows large-capacity information to be "compressed" into a confidential format (that is, converting a byte string of any length into a large integer of a certain length) before signing the private key with digital signature software. Whether it is MD2, MD4 or MD5, they all need to obtain a random length of information and generate a 128-bit message digest. Although the structures of these algorithms are more or less similar, the design of MD2 is completely different from MD4 and MD5. That is because MD2 is designed and optimized for 8-bit machines, while MD4 and MD5 are designed for 32-bit computers. The descriptions and C language source code of these three algorithms are described in detail in Internet RFCs 1321, which is the most authoritative document submitted to the IETF by Ronald L. Rivest in August 1992.
Code:
string JiaMi = Md5Encrypt(LoginPwd); string JieMi = Md5Decrypt(JiaMi); #region MD5加密 /// <summary> /// MD5加密 /// </summary> /// <param name="strSource">需要加密的字符串</param> /// <returns>MD5加密后的字符串</returns> public static string Md5Encrypt(string strSource) { //把字符串放到byte数组中 byte[] bytIn = System.Text.Encoding.Default.GetBytes(strSource); //建立加密对象的密钥和偏移量 byte[] iv = { 102, 16, 93, 156, 78, 4, 218, 32 };//定义偏移量 byte[] key = { 55, 103, 246, 79, 36, 99, 167, 3 };//定义密钥 //实例DES加密类 DESCryptoServiceProvider mobjCryptoService = new DESCryptoServiceProvider(); mobjCryptoService.Key = iv; mobjCryptoService.IV = key; ICryptoTransform encrypto = mobjCryptoService.CreateEncryptor(); //实例MemoryStream流加密密文件 System.IO.MemoryStream ms = new System.IO.MemoryStream(); CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Write); cs.Write(bytIn, 0, bytIn.Length); cs.FlushFinalBlock(); return System.Convert.ToBase64String(ms.ToArray()); } #endregion #region MD5解密 /// <summary> /// MD5解密 /// </summary> /// <param name="Source">需要解密的字符串</param> /// <returns>MD5解密后的字符串</returns> public static string Md5Decrypt(string Source) { //将解密字符串转换成字节数组 byte[] bytIn = System.Convert.FromBase64String(Source); //给出解密的密钥和偏移量,密钥和偏移量必须与加密时的密钥和偏移量相同 byte[] iv = { 102, 16, 93, 156, 78, 4, 218, 32 };//定义偏移量 byte[] key = { 55, 103, 246, 79, 36, 99, 167, 3 };//定义密钥 DESCryptoServiceProvider mobjCryptoService = new DESCryptoServiceProvider(); mobjCryptoService.Key = iv; mobjCryptoService.IV = key; //实例流进行解密 System.IO.MemoryStream ms = new System.IO.MemoryStream(bytIn, 0, bytIn.Length); ICryptoTransform encrypto = mobjCryptoService.CreateDecryptor(); CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Read); StreamReader strd = new StreamReader(cs, Encoding.Default); return strd.ReadToEnd(); } #endregion
Another MD5 encryption method:
MD5 encryption simple That is to say, a piece of plain text is used to calculate the cipher text through a certain operation method. For example: the plaintext is: abcdefg Through a series of operations, the ciphertext 7ac66c0f148de9519b8bd264312c4d64
is obtained. It has two characteristics: 1. No collision, 2. Irreversible.
No collision means:
7ac66c0f148de9519b8bd264312c4d64 This ciphertext can only be obtained from the abcdefg plaintext, except for other plaintexts After encryption, its value will never be equal to 7ac66c0f148de9519b8bd264312c4d64, which means that no two plaintexts will get the same ciphertext after encryption.
Irreversible means:
The plaintext is encrypted to obtain the ciphertext, but the plaintext cannot be obtained through the ciphertext. That is to say, when we know that the plain text adcdefg can be encrypted, we can get 7ac66c0f148de9519b8bd264312c4d64, but if we know that a certain text is encrypted, we can get 7ac66c0f148de9519b8bd264312c4d64, but we cannot calculate 7ac66c0f148de9519b8bd264312c4 Who encrypted this text d64?
For example, the password set by the user is abcdefg, and when storing, we store the value 7ac66c0f148de9519b8bd264312c4d64 obtained after abcdefg is encrypted. Then when the user logs in again, he will enter the password abcdefg. How do we compare whether the two are equal?
We cannot convert the encrypted value to the pre-encrypted value, so our usual approach is to re-encrypt the password entered when the user logs in again and compare it with the value stored in the database. If they are equal, The password entered is correct.
Need to quoteusing System.Web.Security;
FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").ToLower();
The above is the entire content of this article. I hope it will be helpful to everyone's learning. I also hope that everyone will support the PHP Chinese website.
For more articles related to .NET MD5 encryption and decryption code analysis, please pay attention to the PHP Chinese website!

Design patterns in C#.NET include Singleton patterns and dependency injection. 1.Singleton mode ensures that there is only one instance of the class, which is suitable for scenarios where global access points are required, but attention should be paid to thread safety and abuse issues. 2. Dependency injection improves code flexibility and testability by injecting dependencies. It is often used for constructor injection, but it is necessary to avoid excessive use to increase complexity.

C#.NET is widely used in the modern world in the fields of game development, financial services, the Internet of Things and cloud computing. 1) In game development, use C# to program through the Unity engine. 2) In the field of financial services, C#.NET is used to develop high-performance trading systems and data analysis tools. 3) In terms of IoT and cloud computing, C#.NET provides support through Azure services to develop device control logic and data processing.

.NETFrameworkisWindows-centric,while.NETCore/5/6supportscross-platformdevelopment.1).NETFramework,since2002,isidealforWindowsapplicationsbutlimitedincross-platformcapabilities.2).NETCore,from2016,anditsevolutions(.NET5/6)offerbetterperformance,cross-

The C#.NET developer community provides rich resources and support, including: 1. Microsoft's official documents, 2. Community forums such as StackOverflow and Reddit, and 3. Open source projects on GitHub. These resources help developers improve their programming skills from basic learning to advanced applications.

The advantages of C#.NET include: 1) Language features, such as asynchronous programming simplifies development; 2) Performance and reliability, improving efficiency through JIT compilation and garbage collection mechanisms; 3) Cross-platform support, .NETCore expands application scenarios; 4) A wide range of practical applications, with outstanding performance from the Web to desktop and game development.

C# is not always tied to .NET. 1) C# can run in the Mono runtime environment and is suitable for Linux and macOS. 2) In the Unity game engine, C# is used for scripting and does not rely on the .NET framework. 3) C# can also be used for embedded system development, such as .NETMicroFramework.

C# plays a core role in the .NET ecosystem and is the preferred language for developers. 1) C# provides efficient and easy-to-use programming methods, combining the advantages of C, C and Java. 2) Execute through .NET runtime (CLR) to ensure efficient cross-platform operation. 3) C# supports basic to advanced usage, such as LINQ and asynchronous programming. 4) Optimization and best practices include using StringBuilder and asynchronous programming to improve performance and maintainability.

C# is a programming language released by Microsoft in 2000, aiming to combine the power of C and the simplicity of Java. 1.C# is a type-safe, object-oriented programming language that supports encapsulation, inheritance and polymorphism. 2. The compilation process of C# converts the code into an intermediate language (IL), and then compiles it into machine code execution in the .NET runtime environment (CLR). 3. The basic usage of C# includes variable declarations, control flows and function definitions, while advanced usages cover asynchronous programming, LINQ and delegates, etc. 4. Common errors include type mismatch and null reference exceptions, which can be debugged through debugger, exception handling and logging. 5. Performance optimization suggestions include the use of LINQ, asynchronous programming, and improving code readability.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

SublimeText3 English version
Recommended: Win version, supports code prompts!

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Safe Exam Browser
Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function

SublimeText3 Chinese version
Chinese version, very easy to use
