请哪位熟悉的帮忙把C#代码转为VC代码

annywoody 2009-01-12 11:19:42
private const string mstr = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";

public static string EnCode(string str)
{
if (string.IsNullOrEmpty(str))
{
return "";
}

byte[] buff = Encoding.Default.GetBytes(str);
int j, k, m;
int len = mstr.Length;
StringBuilder sb = new StringBuilder();
Random r = new Random();

for (int i = 0; i < buff.Length; i++)
{
j = (byte)r.Next(6);
buff[i] = (byte)((int)buff[i] ^ j);
k = (int)buff[i] % len;
m = (int)buff[i] / len;
m = m * 8 + j;
sb.Append(mstr.Substring(k, 1) + mstr.Substring(m, 1));
}

return sb.ToString();
}

public static string DeCode(string str)
{
if (string.IsNullOrEmpty(str))
{
return "";
}

try
{
int j, k, m, n = 0;
int len = mstr.Length;
byte[] buff = new byte[str.Length / 2];

for (int i = 0; i < str.Length; i += 2)
{
k = mstr.IndexOf(str[i]);
m = mstr.IndexOf(str[i + 1]);
j = m / 8;
m = m - j * 8;
buff[n] = (byte)(j * len + k);
buff[n] = (byte)((int)buff[n] ^ m);
n++;
}
return Encoding.Default.GetString(buff);
}
catch
{
return "";
}
}
...全文
199 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
annywoody 2009-01-12
  • 打赏
  • 举报
回复

byte* pBuff = Encoding::Default::GetBytes(str); //这句是不是把str转化为byte类型?
annywoody 2009-01-12
  • 打赏
  • 举报
回复
byte* pBuff = Encoding::Default::GetBytes(str);
这句代码主要是什么意思?
MFC中的怎么写?
vcPlayer 2009-01-12
  • 打赏
  • 举报
回复
基本和C++没啥区别的,就是Encoding类可能在C++中还没有。字符串就是STL的。以下代码供参考:

#include <string>
using namespace std;

static string mstr = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";

static string EnCode(string str)
{
if( str.empty() )
{
return "";
}

byte* pBuff = Encoding::Default::GetBytes(str);
int j, k, m;
int len = mstr.length();
string sb("");
r = rand(); // 这里可以设置随机种子

for (int i = 0; i < buff.Length; i++)
{
j = rand();
pBuff[i] = (byte)((int)pBuff[i] ^ j);
k = (int)pBuff[i] % len;
m = (int)pBuff[i] / len;
m = m * 8 + j;
sb += (mstr.substr(k, 1) + mstr.substr(m, 1));
}

return sb;
}

annywoody 2009-01-12
  • 打赏
  • 举报
回复
主要是两个函数,一个字符串加密函数,一个是解密函数
别人写的代码,同时有个动态链接库,但我的工程用的是VC6.0好像没办法调用C#写的DLL
所以想把这个加密、解密函数自己写了。
或者知道这个是什么加密方法的说声,找找有没有VC写的这个加密算法
peng00 2009-01-12
  • 打赏
  • 举报
回复
[code=C/C++]
#include <iostream>

using namespace std;

int a = 0; //变量a
[code]
chenghu19860527 2009-01-12
  • 打赏
  • 举报
回复
UP
peng00 2009-01-12
  • 打赏
  • 举报
回复

int i = 0;
peng00 2009-01-12
  • 打赏
  • 举报
回复

//新人,测试一下如何插入代码,见谅
peng00 2009-01-12
  • 打赏
  • 举报
回复
C/C++ code
//
annywoody 2009-01-12
  • 打赏
  • 举报
回复
BYTE* pBuff=(BYTE*)strEnCode.GetBuffer(strEnCode.GetLength());
strEnCode.ReleaseBuffer();

问题解决
yjgx007 2009-01-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 annywoody 的回复:]
C/C++ codebyte*pBuff=Encoding::Default::GetBytes(str);//这句是不是把str转化为byte类型?
[/Quote]

http://msdn.microsoft.com/en-us/library/system.text.encoding.default(VS.80).aspx


转化成CString操作即可
leez0301 2009-01-12
  • 打赏
  • 举报
回复
是将一组字符编码转化为为一个字节序列

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧