哪个给我 加密后只有是大写字母和数字函数,谢谢!
串的内容各种东西都有
加密后要求:
1.加密后只有是大写字母和数字
2.要有对应的解密函数
谢谢!
问题点数:20、回复次数:14Top
1 楼bys_home(我是天才)回复于 2005-06-03 12:55:18 得分 1
自己写一个加密算法。呀!Top
2 楼JasonHeung(拥有一切不过就这样笑着哭)回复于 2005-06-03 17:14:55 得分 2
用3Des加密后再转成Base64编码。
解密则倒过来。
Top
3 楼minersi(懒虫族之慵懒的猫猫)回复于 2005-06-03 17:17:56 得分 2
可以查查“安全哈希算法 1”(SHA1)Top
4 楼mba9001(两年不见,csdn变肥了)回复于 2005-06-03 20:52:17 得分 0
upTop
5 楼AlphaGIS(飘零)回复于 2005-06-03 23:28:05 得分 2
这麽简单的问题
. Net中所有的可加密解密的算法都可用
只要进行以下转换就可以了
只有是大写字母和数字=BitConverter.Tostring(加密后的字节数组)
别告数我不董将“只有是大写字母和数字”反转换为字节数组,然后进行解密
主要是BitConverter.Tostring这个转换,加密算法一模一样的Top
6 楼qcny()回复于 2005-06-04 00:05:08 得分 2
可以自己写一个方法Top
7 楼tttick(秉承一贯懒散的生活方式与严谨的工作态度¢)CodinG)回复于 2005-06-07 12:46:48 得分 0
MD5加密?Top
8 楼BigIdiot628(大笨蛋,谁叫你不努力!)回复于 2005-06-07 20:16:28 得分 1
顶Top
9 楼sevenever(smelly dog)回复于 2005-06-16 13:00:41 得分 2
JasonHeung(拥有一切也不过就这样笑着哭) ( ) 信誉:100
正解,base64就是生出来解决你这个问题的。Top
10 楼chieftech(【标题党总书记】)回复于 2005-06-16 13:08:41 得分 2
回复: minersi(懒虫族之慵懒的猫猫) ( ) 信誉:100 2005-6-3 17:17:56 得分: 0
可以查查“安全哈希算法 1”(SHA1)
-------------------------------------------------------------
SHA1好像是单向的,寒~~!!!
Top
11 楼xianxiliu(xianxiliu)回复于 2005-06-18 12:35:00 得分 0
哪个给个例子,好不?Top
12 楼runrunrun(农妇、山泉、有点田)回复于 2005-06-18 13:13:04 得分 1
JasonHeung(拥有一切也不过就这样笑着哭) ( ) 信誉:100
正解,base64就是生出来解决你这个问题的。
================================================
错,base64里有小写字母。楼主可以用其他的加密算法加密后再自己转成大写字母和数字的组合Top
13 楼yitiaoming2003(小钱)回复于 2005-06-21 21:59:24 得分 2
using System;
using System.Web.Security;
namespace PasswordHashDemo
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
string pwd=Console.ReadLine();
string pwdMD5=FormsAuthentication.HashPasswordForStoringInConfigFile(pwd,"md5");
string pwdSHA1=FormsAuthentication.HashPasswordForStoringInConfigFile(pwd,"sha1");
Console.WriteLine(pwdMD5);
Console.WriteLine(pwdSHA1);
Console.ReadLine();
}
}
}
Top
14 楼sevenever(smelly dog)回复于 2005-06-27 21:27:58 得分 3
//楼主自己设计一种编码方式吧,参考base64,你需要大写字母和数字总共可供编码的字符有26+10=36个,那么只能编码5个bit,那么就需要将编码前的5个字节编码为8个字节。其实考虑到算法的简单,可以只编码4个bit,那就是每个字节用两个字节编码,这样只需要使用大写字母而不用数字。比如 一个字节是'a' ASCII码为0x61,二进制为01100001,拆分为两个4bit为0110和0001,然后都加上'A',就编码成为了G和B。这一方式的缺点在于浪费空间太多,50%的存储空间被浪费了。
//一个C的编码代码
//**********************************************************
//函数: EncodeBaseA
// BaseA编码
//参数 a 未编码的字节 b 编码后的字节
// b 缓冲区长度必须大于等于a中字节数的2倍
// bufferLen a缓冲区中字节数
void EncodeBaseA(unsigned char * a,unsigned char * b,int bufferLen)
{
unsigned char * pA=a;
unsigned char * pB=b;
int i;
for(i=0;i<bufferLen;i++)
{
*pB++=((*pA)>>4)+65;
*pB++=((*pA++) & 0x0F)+65;
}
}
//**********************************************************
//函数: DecodeBaseA
// BaseA解码
//参数 a 未解码的字节 b 解码后的字节
// b 缓冲区长度必须大于等于a中字节数的1/2
// bufferLen a缓冲区中字节数如果是奇数,忽略最后一个字符
void DecodeBaseA(unsigned char * a,unsigned char * b,int bufferLen)
{
unsigned char * pA=a;
unsigned char * pB=b;
unsigned char t;
int i;
int len = bufferLen/2;
for(i=0;i<len;i++)
{
t = (*pA++ -65)<<4;
*pB++ = t | (*pA++-65);
}
}Top




