本来想把PB 的函数封装成COM组件调用,结果怎么都搞不定,只能讲代码搞出来换种语言实现了.

string s_ret
integer i_first,i_second,i_third,i_fourth
integer by4,i,reallen
long i_total
string is_key
string is_base64
string EncMap[ to ]
int DecMap[ to ]
integer by3
long i_len is_base64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
is_base64 = is_base64 + "abcdefghijklmnopqrstuvwxyz"
is_base64 = is_base64 + ""
is_base64 = is_base64 + "+/"
for i = to
EncMap[i]=mid(is_base64,i+,)
next
for i = to
DecMap[asc(EncMap[i])] = i
next
choose case a_type
case //加密
s_ret = ""
if len(a_text)= then
return s_ret
end if
by3=len(a_text) - mod(len(a_text),)
i=
do while i<= by3
i_first = asc(mid(a_text,i + ,))
i_second = asc(mid(a_text, i + ,))
i_third = asc(mid(a_text,i + ,))
s_ret = s_ret + encmap[i_first / ]
s_ret = s_ret + encmap[mod(i_first , ) * + i_second / ]
s_ret = s_ret + encmap[mod(i_second , ) * + i_third / ]
s_ret = s_ret + encmap[mod(i_third , )]
i = i +
loop
if i <= len(a_text) then
i_first = asc(mid(a_text, i + , ))
if mod(len(a_text), )= then
i_second =asc(mid(a_text,i+,))
s_ret = s_ret + encmap[i_first / ]
s_ret = s_ret + encmap[mod(i_first , ) * + i_second / ]
s_ret = s_ret + encmap[mod(i_second , ) * ]
s_ret = s_ret + "="
else
s_ret = s_ret + encmap[i_first / ]
s_ret = s_ret + encmap[mod(i_first,) * ]
s_ret = s_ret + "=="
end if
end if
i_len = len(s_ret)
s_ret = left(string(i_len+),) + s_ret case //解密
if len(a_text)= then
s_ret = ""
return s_ret
end if
a_text=right(a_text,len(a_text)-)
reallen = len(a_text)
do while mid(a_text,reallen,) = "="
reallen = reallen -
loop
by4=reallen - mod(reallen,)
i=
do while i<= by4
i_first = decmap[asc(mid(a_text,i + ,))]
i_second = decmap[asc(mid(a_text, i + ,))]
i_third = decmap[asc(mid(a_text,i + ,))]
i_fourth = decmap[asc(mid(a_text,i + ,))]
s_ret = s_ret + char(i_first * + i_second / )
s_ret = s_ret + char(mod(i_second,) * + i_third / )
if mod(i_third,) * + i_fourth <> then
s_ret = s_ret + char(mod(i_third,) * + i_fourth)
end if
i = i +
loop
if i<= reallen then //只可能是xx==或xxx=两种形式有效
if mod(reallen,) = then //xx==形式
i_first = decmap[asc(mid(a_text,i + ,))]
i_second = decmap[asc(mid(a_text, i + ,))]
s_ret = s_ret + char(i_first * + i_second / )
s_ret = s_ret + char(mod(i_second,) * )
else
i_first = decmap[asc(mid(a_text,i + ,))]
i_second = decmap[asc(mid(a_text, i + ,))]
i_third = decmap[asc(mid(a_text,i + ,))]
s_ret = s_ret + char(i_first * + i_second / )
s_ret = s_ret + char(mod(i_second,) * + i_third / )
end if
end if end choose
return s_ret
        public static string right(string s1, int str)
{
return s1.Substring(s1.Trim().Length - str, str);
} public static string left(string s1, int str)
{
return s1.Substring( , str);
} public static char mid(string s1, int str, int len)
{
return s1.Substring(str, len).ToArray()[];
} public static int asc(char c1)
{
return(int)c1;
} public static int mod(int x,int y)
{
return x % y;
} public static int len(string s1)
{
return s1.Length;
} public static string encrypt(string a_text, string type = "")
{
string s_ret;
int i_first, i_second, i_third, i_fourth;
int by4, i, reallen;
long i_total;
string is_key;
string is_base64;
char[] encmap = new char[];
int[] decmap = new int[];
int by3 = ;
long i_len; is_base64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
is_base64 = is_base64 + "abcdefghijklmnopqrstuvwxyz";
is_base64 = is_base64 + "";
is_base64 = is_base64 + "+/"; char[] tk = is_base64.ToCharArray(); for (i = ; i <= ; i++)
{
encmap[i] = tk[i];
} for (i = ; i <= ; i++)
{
int tp = (int)asc(encmap[i]);
decmap[tp] = i;
} s_ret = "";
if (a_text.Trim() == "")
{
return s_ret;
} if (type == "")
{
by3 = a_text.Length - (a_text.Length % ); i = ;
while (i < by3)
{
i_first = asc(mid(a_text, i + , )); i_second = asc(mid(a_text, i + , ));
i_third = asc(mid(a_text, i + , ));
s_ret = s_ret + encmap[i_first / ];
s_ret = s_ret + encmap[mod(i_first, ) * + i_second / ];
s_ret = s_ret + encmap[mod(i_second, ) * + i_third / ];
s_ret = s_ret + encmap[mod(i_third, )];
i = i + ;
}
if (i < len(a_text))
{
i_first = asc(mid(a_text, i + , ));
if ((a_text.Length % ) == )
{
i_second = asc(mid(a_text, i + , ));
s_ret = s_ret + encmap[i_first / ];
s_ret = s_ret + encmap[mod(i_first, ) * + i_second / ];
s_ret = s_ret + encmap[mod(i_second, ) * ];
s_ret = s_ret + "=";
}
else
{
s_ret = s_ret + encmap[i_first / ];
s_ret = s_ret + encmap[mod(i_first, ) * ];
s_ret = s_ret + "==";
}
}
i_len = len(s_ret);
s_ret = left((i_len + ).ToString(), ) + s_ret;
}
else
{ a_text = right(a_text, len(a_text) - );
reallen = len(a_text);
while (mid(a_text, reallen - , ) == '=')
{
reallen = reallen - ;
} by4 = reallen - mod(reallen, ); i = ; while (i < by4)
{
i_first = decmap[asc(mid(a_text, i + , ))];
i_second = decmap[asc(mid(a_text, i + , ))];
i_third = decmap[asc(mid(a_text, i + , ))];
i_fourth = decmap[asc(mid(a_text, i + , ))];
s_ret = s_ret + (char)(i_first * + i_second / );
s_ret = s_ret + (char)(mod(i_second, ) * + i_third / );
if (mod(i_third, ) * + i_fourth != )
{
s_ret = s_ret + (char)(mod(i_third, ) * + i_fourth);
}
i = i + ;
}
if (i < reallen)
{
//只可能是xx==或xxx=两种形式有效
if (mod(reallen, ) == ) //xx==形式
{
i_first = decmap[asc(mid(a_text, i + , ))];
i_second = decmap[asc(mid(a_text, i + , ))];
s_ret = s_ret + (char)(i_first * + i_second / );
s_ret = s_ret + (char)(mod(i_second, ) * );
}
else
{
i_first = decmap[asc(mid(a_text, i + , ))];
i_second = decmap[asc(mid(a_text, i + , ))];
i_third = decmap[asc(mid(a_text, i + , ))];
s_ret = s_ret + (char)(i_first * + i_second / );
s_ret = s_ret + (char)(mod(i_second, ) * + i_third / );
}
}
}
return s_ret;
}

pb加密转换成C#的更多相关文章

  1. 一个java的DES加密解密类转换成C#

    一个java的des加密解密代码如下: //package com.visionsky.util; import java.security.*; //import java.util.regex.P ...

  2. 生成二维码 加密解密类 TABLE转换成实体、TABLE转换成实体集合(可转换成对象和值类型) COOKIE帮助类 数据类型转换 截取字符串 根据IP获取地点 生成随机字符 UNIX时间转换为DATETIME\DATETIME转换为UNIXTIME 是否包含中文 生成秘钥方式之一 计算某一年 某一周 的起始时间和结束时间

    生成二维码 /// <summary>/// 生成二维码/// </summary>public static class QRcodeUtils{private static ...

  3. h5模型文件转换成pb模型文件

      本文主要记录Keras训练得到的.h5模型文件转换成TensorFlow的.pb文件 #*-coding:utf-8-* """ 将keras的.h5的模型文件,转换 ...

  4. java将office文档pdf文档转换成swf文件在线预览

    第一步,安装openoffice.org openoffice.org是一套sun的开源office办公套件,能在widows,linux,solaris等操作系统上执行. 主要模块有writer(文 ...

  5. https,https的本地测试环境搭建,asp.net结合https的代码实现,http网站转换成https网站之后遇到的问题

    一:什么是https SSL(Security   Socket   Layer)全称是加密套接字协议层,它位于HTTP协议层和TCP协议层之间,用于建立用户与服务器之间的加密通信,确保所传递信息的安 ...

  6. 【转】https,https的本地测试环境搭建,asp.net结合https的代码实现,http网站转换成https网站之后遇到的问题

    正需要这个,写的很好,就转过来了 转自: http://www.cnblogs.com/naniannayue/ 一:什么是https SSL(Security   Socket   Layer)全称 ...

  7. 一个java的DES加解密类转换成C#

    原文:一个java的DES加解密类转换成C# 一个java的des加密解密代码如下: //package com.visionsky.util; import java.security.*; //i ...

  8. Unix时间戳转换成C#中的DateTime

    先交代一下应用场景:我们的软件需要做一个简单的有效期验证保护.初始的想法是 在本地将安装时间.启动时间.当前时间做比较,为了防止记录被修改,记录在注册表的特殊的地方并加密. 我使用了.net自带的rs ...

  9. 【转】qlv文件如何转换成mp4 怎样把下载好的qlv格式视频转换成MP4格式

    狸窝  复制  收藏  保存到桌面  快速找教程方案  反馈需求  社会主义核心价值观  客服QQ41442901   马上注册 升级VIP   对于视频文件之间的转换问题,我也已经是无力吐槽了,每个 ...

随机推荐

  1. 四种常见的APP分类界面布局设计案例学习

    相信各位对于APP设计,已经很熟练啦.如何在熟练的基础上提高我们界面的优美度,或者是进行APP界面的迭代设计. 重构APP设计布局是我们必须要经历的一个过程. 在之前,学习UI设计的时候,经常要接触到 ...

  2. jenkins集成robot

    一.jenkins集成robot的非gui的运行命令 pybot     配置文件   用例地址 或者robot  配置文件   用例地址 二.展示robot 运行结果图表 1.在系统配置中增加Rob ...

  3. hadoop cdh 后启动群起脚本总是起不起来的一些坑

    最近都在流行大数据什么的,然后偶然之间加入了一个物联网的小公司,可以使用hadoop 来做数据分析,于是心中窃喜,可以有机会接触大数据了,从此走上人生巅峰赢取白富美. 可是成功的道路总不是一帆风顺滴, ...

  4. yii2模型

    多对多可以使用all()来调用 对数据提供者进行修改 /** * Lists all ArticleCate models. * @return mixed */ public function ac ...

  5. css实现移动端滚动条隐藏仍然可以滚动内容

    .g-panel { height: calc(100% - 112px); overflow: auto; &::-webkit-scrollbar { display: none; // ...

  6. Microsoft 常用下载链接

    申明:本文所有下载链接皆来自微软官网,推荐使用迅雷下载 推荐:Windows10安装时选择专业版,Office用2016版,其他随意,具体用哪个版本根据配置和需求 Windows系统下载 Window ...

  7. [蓝桥杯][基础训练]Sine之舞

    Description 最近FJ为它的奶牛开设了数学分析课,FJ知道,若要学好这门课,必须有一个好的三角函数基本功. 所以他为奶牛们做了一个“Sine之舞”的游戏,寓教于乐,提高奶牛的计算能力. 不妨 ...

  8. Rumor

    Vova promised himself that he would never play computer games... But recently Firestorm — a well-kno ...

  9. selenium + phantomJS 常用方法总结

    0x01 初始化: dcap = dict(DesiredCapabilities.PHANTOMJS)  #一些属性的设置 dcap["phantomjs.page.settings.lo ...

  10. mysql5.7导出数据提示--secure-file-priv选项问题的解决方法

    mysql可使用 into outfile 参数把表中数据导出到csv,例如可用以下命令把user表的数据导出到user.csv select * from user into outfile '/t ...