吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1115|回复: 3
收起左侧

字符串DES解密方法 key已经找到代码 求写一个根据算法自定义生成字符串

[复制链接]
浪漫黑客 发表于 2020-6-8 18:59
100吾爱币
本帖最后由 浪漫黑客 于 2020-6-8 22:33 编辑

已经解决 多谢 Avenshy  syrmb

最佳答案

查看完整内容

其实很简单,拉出来跑一遍就知道了(笑)[mw_shl_code=csharp,true]using System; using System.Security.Cryptography; using System.Text; using Debiao.WebUtils; using System.Configuration; namespace Debiao.WebUtils { class TriDESEncrypt { private static string sKey = "ENCRYPTBOO"; static void Main(string[] args) { Console.WriteLine(Decrypt("Ub0BrU4gGkrY/Pd ...

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Avenshy 发表于 2020-6-8 18:59
其实很简单,拉出来跑一遍就知道了(笑)
[C#] 纯文本查看 复制代码
using System;
using System.Security.Cryptography;
using System.Text;
using Debiao.WebUtils;
using System.Configuration;
namespace Debiao.WebUtils
{
   class TriDESEncrypt
   {
       private static string sKey = "ENCRYPTBOO";
	   static void Main(string[] args)
       {
            Console.WriteLine(Decrypt("Ub0BrU4gGkrY/Pdz2N1PgPf0hlIO1r7Z87cfndguNSA="));
            Console.ReadKey();
       }
       public static string Encrypt(string original)
       {
           return TriDESEncrypt.Encrypt(original, TriDESEncrypt.sKey);
       }
       public static string Decrypt(string original)
       {
           return TriDESEncrypt.Decrypt(original, TriDESEncrypt.sKey, System.Text.Encoding.Default);
       }
       public static string Decrypt(string original, string key)
       {
           return TriDESEncrypt.Decrypt(original, key, System.Text.Encoding.Default);
       }
       public static string Decrypt(string original, System.Text.Encoding encoding)
       {
           return TriDESEncrypt.Decrypt(original, TriDESEncrypt.sKey, encoding);
       }
       public static string Encrypt(string original, string key)
       {
           string result;
           try
           {
               byte[] bytes = System.Text.Encoding.Default.GetBytes(original);
               byte[] bytes2 = System.Text.Encoding.Default.GetBytes(key);
               result = System.Convert.ToBase64String(TriDESEncrypt.Encrypt(bytes, bytes2));
           }
           catch
           {
               result = "";
           }
           return result;
       }
       public static string Decrypt(string encrypted, string key, System.Text.Encoding encoding)
       {
           string result;
           try
           {
               byte[] encrypted2 = System.Convert.FromBase64String(encrypted);
               byte[] bytes = System.Text.Encoding.Default.GetBytes(key);
               result = encoding.GetString(TriDESEncrypt.Decrypt(encrypted2, bytes));
           }
           catch
           {
               result = "";
           }
           return result;
       }
       public static byte[] MakeMD5(byte[] original)
       {
           System.Security.Cryptography.MD5CryptoServiceProvider mD5CryptoServiceProvider = new System.Security.Cryptography.MD5CryptoServiceProvider();
           return mD5CryptoServiceProvider.ComputeHash(original);
       }
       public static byte[] Encrypt(byte[] original, byte[] key)
       {
           return new System.Security.Cryptography.TripleDESCryptoServiceProvider
           {
               Key = TriDESEncrypt.MakeMD5(key), 
               Mode = System.Security.Cryptography.CipherMode.ECB
           }.CreateEncryptor().TransformFinalBlock(original, 0, original.Length);
       }
       public static byte[] Decrypt(byte[] encrypted, byte[] key)
       {
           return new System.Security.Cryptography.TripleDESCryptoServiceProvider
           {
               Key = TriDESEncrypt.MakeMD5(key), 
               Mode = System.Security.Cryptography.CipherMode.ECB
           }.CreateDecryptor().TransformFinalBlock(encrypted, 0, encrypted.Length);
       }
       public static byte[] Encrypt(byte[] original)
       {
           byte[] bytes = System.Text.Encoding.Default.GetBytes(TriDESEncrypt.sKey);
           return TriDESEncrypt.Encrypt(original, bytes);
       }
       public static byte[] Decrypt(byte[] encrypted)
       {
           byte[] bytes = System.Text.Encoding.Default.GetBytes(TriDESEncrypt.sKey);
           return TriDESEncrypt.Decrypt(encrypted, bytes);
       }
   }
}

运行结果:
TIM截图20200608193530.png
版主可别说我违规,我只是解码了这个字符串

解密流程:
1.把原文base64解码转为bytes数组
2.取key的md5作为密钥
3.解密

加密方法也是一样的,倒着来一遍就行了

免费评分

参与人数 2吾爱币 +2 热心值 +2 收起 理由
夜泉 + 1 + 1 用心讨论,共获提升!
易行 + 1 + 1 这很实用,赞!

查看全部评分

 楼主| 浪漫黑客 发表于 2020-6-8 19:57
本帖最后由 浪漫黑客 于 2020-6-8 21:02 编辑
Avenshy 发表于 2020-6-8 18:59
其实很简单,拉出来跑一遍就知道了(笑)[mw_shl_code=csharp,true]using System;
using System.Security. ...

朋友我私信你
buhaozhao 发表于 2020-6-8 20:18
浪漫黑客 发表于 2020-6-8 19:57
朋友能加下我的QQ么212697430  我已经采纳了  有事情请教

留联系方式是违规的,可以私信
返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 11:44

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表