Q:
用C#實現CFS編碼加密(ASP中常用的密碼編譯演算法)。
refer:http://bbs.csdn.net/topics/390538946
A:
class Program{ public static String CfsPas(String CodeStr) { int CodeLen; int CodeSpace; double NewCode; int cecr, cecb, cec; CodeLen = 30; CodeSpace = CodeLen - CodeStr.Length; if (CodeSpace >= 1) { for (cecr = 1; cecr <= CodeSpace; cecr++) CodeStr = CodeStr + (char)21; } NewCode = 1; long Been = 0; for (cecb = 1; cecb <= CodeLen; cecb++) { Been = CodeLen + ((int)Convert.ToChar(CodeStr.Substring(cecb - 1, 1))) * cecb; NewCode = Convert.ToDouble(NewCode * Been); } CodeStr = NewCode.ToString(); string NewCodeStr = ""; for (cec = 1; cec <= CodeStr.Length; cec++) { if (CodeStr.Length - cec < 3) NewCodeStr += CfsCode(CodeStr.Substring(cec - 1)); else NewCodeStr += CfsCode(CodeStr.Substring(cec - 1, 3)); } string EnPas = ""; for (cec = 20; cec <= NewCodeStr.Length - 18; cec += 2) EnPas = EnPas + NewCodeStr.Substring(cec - 1, 1); return EnPas.ToUpper(); } static string CfsCode(string Word) { string CfsCode = ""; for (int i = 0; i < Word.Length; i++) { CfsCode = CfsCode + (int)Convert.ToChar(Word.Substring(i, 1)); } CfsCode = string.Format("{0:X}", int.Parse(CfsCode)); return CfsCode; } static void Main(string[] args) { string md5 = "d99e33a642209c61"; Console.Write("Input:" + md5); Console.WriteLine(); Console.Write("Ouput:" + CfsPas("d99e33a642209c61")); Console.WriteLine(); Console.WriteLine(); Console.Write("Input:" + "123"); Console.WriteLine(); Console.Write("Ouput:" + CfsPas("123")); Console.ReadLine(); }}
輸出: