日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

.Net/C# 实现: FlashFXP 地址簿中站点密码的加解密算法

發布時間:2025/5/22 C# 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .Net/C# 实现: FlashFXP 地址簿中站点密码的加解密算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

參閱 CCFer & TLFer :?kanbolJava 代碼翻譯修改而成:
kanbol 說: 之前在TLF寫過一個程序自動更新flashfxp的地址簿,也就是修改sites.dat文件
現在這里貼出flashfxp的加解密算法,順便說一下sites.dat文件的結構
算法可見下面的代碼,
sites.dat文件結構比較簡單,用ultraedit直接打開的話,是看到一個文本文件
轉換成十六進制編輯模式就能看到一點不同了
一個站點名,包括其目錄名都在一個"[]"中,例如目錄abc下的子目錄def下的站點sitename

//C# Code:
//using System;
//using System.Text;

public class Class1
{
?private static char[] key = "yA36zA48dEhfrvghGRg57h5UlDv3".ToCharArray();
?public static void Main()
?{
??System.Console.Out.WriteLine(Decode(Encode("password")));
??System.Console.Out.WriteLine(Decode(Encode("Microshaoft")));
??System.Console.Out.WriteLine(Decode(Encode("FlashFXP")));
??System.Console.Out.WriteLine(Decode(Encode("flashFXP")));
?}
?
?public static string Decode(string x)
?{
??System.Text.StringBuilder sb = new System.Text.StringBuilder();
??char[] ca = x.ToCharArray();
??for (int i = 0; i < (ca.Length - 2); i += 2)
??{
???string s1 = "" + ca[i + 2] + ca[i + 3];
???string s2 = "" + System.Convert.ToString((byte) key[(i / 2) % 13], 16);
???string s3 = "" + ca[i] + ca[i + 1];
???int m = (System.Convert.ToInt32(s1, 16) ^ System.Convert.ToInt32(s2, 16)) - System.Convert.ToInt32(s3, 16);
???if (m < 0)
???{
????m += 255;
???}
???sb.Append((char) ((short) m));
??}
??return sb.ToString();
?}

?public static string Encode(string x)
?{
??char[] ca = x.ToCharArray();
??int k = new System.Random().Next(255);
??System.Text.StringBuilder sb = null;
??if (k > 15)
??{
???sb = new System.Text.StringBuilder("" + System.Convert.ToString(k, 16));
??}
??else
??{
???sb = new System.Text.StringBuilder("0" + System.Convert.ToString(k, 16));
??}
??int m = System.Convert.ToInt32(sb.ToString(), 16);
??for (int i = 0; i < ca.Length; i++)
??{
???if ((ca[i] + m) > 255)
???{
????m = ((ca[i] + m) - 255) ^ key[i % 13];
???}
???else
???{
????m = (ca[i] + m) ^ key[i % 13];
???}
???if (m > 15)
???{
????sb.Append(System.Convert.ToString(m, 16));
???}
???else
???{
????sb.Append("0" + System.Convert.ToString(m, 16));
???}
??}
??return sb.ToString().ToUpper();
?}
}

轉載于:https://www.cnblogs.com/Microshaoft/archive/2004/11/27/2485757.html

總結

以上是生活随笔為你收集整理的.Net/C# 实现: FlashFXP 地址簿中站点密码的加解密算法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。