免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2193 | 回复: 6
打印 上一主题 下一主题

base64解密加密问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-27 09:22 |只看该作者 |倒序浏览
急需base64解密加密源代码。。谁能提供啊。。

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
2 [报告]
发表于 2008-11-27 09:26 |只看该作者
google一把,找不到吗?

论坛徽章:
0
3 [报告]
发表于 2008-11-27 09:34 |只看该作者

回复 #1 yizidendai 的帖子

*/
using System;using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace base64_
{
       public partial class Form1 : Form
       {
           public Form1()
           {
               InitializeComponent();
           }
           string base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";//编码后的字符集
           int[] base64DecodeChars = new int[] { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1 };//对应ASICC字符的位置
           string base64encode(string str)
           { //加密
               string Out = "";
               int i = 0, len = str.Length;
               char c1, c2, c3;
               while (i < len)
               {
                   c1 = Convert.ToChar(str[i++] & 0xff);
                   if (i == len)
                   {
                       Out += base64EncodeChars[c1 >> 2];
                       Out += base64EncodeChars[(c1 & 0x3) << 4];
                       Out += "==";
                       break;
                   }
                   c2 = str[i++];
                   if (i == len)
                   {
                       Out += base64EncodeChars[c1 >> 2];
                       Out += base64EncodeChars[((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4)];
                       Out += base64EncodeChars[(c2 & 0xF) << 2];
                       Out += "=";
                       break;
                   }
                   c3 = str[i++];
                   Out += base64EncodeChars[c1 >> 2];
                   Out += base64EncodeChars[((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4)];
                   Out += base64EncodeChars[((c2 & 0xF) << 2) | ((c3 & 0xC0) >> 6)];
                   Out += base64EncodeChars[c3 & 0x3F];
               }
               return Out;
           }
           string utf16to8(string str)
           {
               string Out = "";
               int i, len;
               char c;//char为16位Unicode字符,范围0~0xffff,感谢vczh提醒
               len = str.Length;
               for (i = 0; i < len; i++)
               {//根据字符的不同范围分别转化
                   c = str;
                   if ((c >= 0x0001) && (c <= 0x007F))
                   {
                       Out += str;
                   }
                   else if (c > 0x07FF)
                   {
                       Out += (char)(0xE0 | ((c >> 12) & 0x0F));
                       Out += (char)(0x80 | ((c >> 6) & 0x3F));
                       Out += (char)(0x80 | ((c >> 0) & 0x3F));
                   }
                   else
                   {
                       Out += (char)(0xC0 | ((c >> 6) & 0x1F));
                       Out += (char)(0x80 | ((c >> 0) & 0x3F));
                   }
               }
               return Out;
           }

           string base64decode(string str)
           {//解密
               int c1, c2, c3, c4;
               int i, len;
               string Out;
               len = str.Length;
               i = 0; Out = "";
               while (i < len)
               {
                   do
                   {
                       c1 = base64DecodeChars[str[i++] & 0xff];
                   } while (i < len && c1 == -1);
                   if (c1 == -1) break;
                   do
                   {
                       c2 = base64DecodeChars[str[i++] & 0xff];
                   } while (i < len && c2 == -1);
                   if (c2 == -1) break;
                   Out += (char)((c1 << 2) | ((c2 & 0x30) >> 4));
                   do
                   {
                       c3 = str[i++] & 0xff;
                       if (c3 == 61) return Out;
                       c3 = base64DecodeChars[c3];
                   } while (i < len && c3 == -1);
                   if (c3 == -1) break;
                   Out += (char)(((c2 & 0XF) << 4) | ((c3 & 0x3C) >> 2));
                   do
                   {
                       c4 = str[i++] & 0xff;
                       if (c4 == 61) return Out;
                       c4 = base64DecodeChars[c4];
                   } while (i < len && c4 == -1);
                   if (c4 == -1) break;
                   Out += (char)(((c3 & 0x03) << 6) | c4);
               }
               return Out;
           }

           string utf8to16(string str)
           {
               string Out = "";
               int i, len;
               char c, char2, char3;
               len = str.Length;
               i = 0; while (i < len)
               {
                   c = str[i++];
                   switch (c >> 4)
                   {
                       case 0:
                       case 1:
                       case 2:
                       case 3:
                       case 4:
                       case 5:
                       case 6:
                       case 7: Out += str[i - 1]; break;
                       case 12:
                       case 13: char2 = str[i++];
                       Out += (char)(((c & 0x1F) << 6) | (char2 & 0x3F)); break;
                       case 14: char2 = str[i++];
                       char3 = str[i++];
                       Out += (char)(((c & 0x0F) << 12) | ((char2 & 0x3F) << 6) | ((char3 & 0x3F) << 0)); break;
                   }
               }
               return Out;
           }

           private void button1_Click(object sender, EventArgs e)
           {
               textBox2.Text = base64encode(utf16to8(textBox1.Text));
           }

           private void button2_Click(object sender, EventArgs e)
           {
               textBox1.Text = utf8to16(base64decode(textBox2.Text));
           }

           private void button3_Click(object sender, EventArgs e)
           {
               textBox1.Clear();
               textBox2.Clear();
           }

           private void button4_Click(object sender, EventArgs e)
           {
               Application.Exit();
           }
       }
}

论坛徽章:
0
4 [报告]
发表于 2008-11-27 09:36 |只看该作者

回复 #1 yizidendai 的帖子

我是急需项目上面的。GOOGLE我找了好几个。。觉的都有BUG啊,,我现在需要能够在哪个项目上面被测试通过了。。没有问题的源码啊。。

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
5 [报告]
发表于 2008-11-27 09:49 |只看该作者
原帖由 yizidendai 于 2008-11-27 09:36 发表
我是急需项目上面的。GOOGLE我找了好几个。。觉的都有BUG啊,,我现在需要能够在哪个项目上面被测试通过了。。没有问题的源码啊。。


呵呵,那就尝试着修一下BUG啊。也许别人也是下载的有BUG版的,只不过人家花时间修正好了

论坛徽章:
0
6 [报告]
发表于 2008-11-27 10:08 |只看该作者

回复 #4 yizidendai 的帖子

没有时间类。。明天就要交了

论坛徽章:
0
7 [报告]
发表于 2008-11-27 10:10 |只看该作者

回复 #3 kns1024wh 的帖子

上面的代码怎么有BASE64,的又有UTF的。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP