会员
周边
众包
新闻
博问
闪存
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
lemonyins
首页
新随笔
联系
订阅
管理
(C#)用固定的字符集进行字符串加密的函数
这个函数是我从 VB 翻译过来的,加密后的字符串字符固定在字符集里面,可以用于很多地方......
这个函数是我从 VB 翻译过来的,加密后的字符串字符固定在字符集里面,可以用于很多地方:
/**/
///
<summary>
///
加密字符串类
///
</summary>
public
static
class
Encrypt
{
private
const
string
mstr
=
"
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz
"
;
/**/
///
<summary>
///
字符串加密
///
</summary>
///
<param name="str">
待加密的字符串
</param>
///
<returns>
加密后的字符串
</returns>
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();
}
/**/
///
<summary>
///
字符串解密
///
</summary>
///
<param name="str">
待解密的字符串
</param>
///
<returns>
解密后的字符串
</returns>
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
""
;
}
}
}
效果:
源代码:
/Files/lemony/EnCode.rar
posted on
2007-04-30 15:20
柠檬隐士
阅读(
3207
) 评论(
5
)
编辑
收藏
举报
会员力量,点亮园子希望
刷新页面
返回顶部