CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

我要个字符串的问题

楼主zerohay(千里梦惊雪)2005-02-02 13:57:27 在 .NET技术 / C# 提问

我需要对输入的字符串进行加密  
  就是+3~  
  w变z  
  e变h  
  怎么处理啊 问题点数:20、回复次数:8Top

1 楼JasonHeung(拥有一切不过就这样笑着哭)回复于 2005-02-02 14:03:58 得分 0

string   Encrypt(string   src)  
  {  
  byte[]   b   =   System.Text.Encoding.Default.GetBytes(src);  
  int   i;  
  for   (i   =   0   ;   i   <   b.GetLength(0);   ++i)  
  {  
  b[i]   +=   3;  
  }  
  return   System.Text.Encoding.Default.GetString(b);  
  }  
  Top

2 楼zerohay(千里梦惊雪)回复于 2005-02-02 14:12:04 得分 0

我的是思考想法~~  
  不要代码Top

3 楼yufenfeila(雨纷飞啦)回复于 2005-02-02 14:16:46 得分 20

改写了一下楼上的  
   
  string   Encrypt(string   src)  
  {  
  byte[]   b   =   System.Text.Encoding.Default.GetBytes(src);  
  int   i;  
  for   (i   =   0   ;   i   <   b.GetLength(0);   ++i)  
  {  
  b[i]   +=   3;  
  if   (b[i]   >   122)  
  b[i]   -=   26;  
  }  
  return   System.Text.Encoding.Default.GetString(b);  
  }Top

4 楼JasonHeung(拥有一切不过就这样笑着哭)回复于 2005-02-02 14:19:37 得分 0

思考方法就是将字符串转成byte[]即字节数组,然后进行处理,最后在转成字符串输出,如果加密后的结果有值变成非ASCII字符,可转成Base64编码输出。祝你快乐!Top

5 楼yufenfeila(雨纷飞啦)回复于 2005-02-02 14:19:55 得分 0

把字符串转换成byte型数组,然后把每个byte加上3,这样字符就增大3,在ascii码中,字符是顺序存放的,增大3就是用后面第三个字符  
   
  这样再转换回来,就变成你想要的了Top

6 楼liduke(天下有雪)回复于 2005-02-02 14:20:33 得分 0

每个字符的asc码+3后-26Top

7 楼JasonHeung(拥有一切不过就这样笑着哭)回复于 2005-02-02 14:20:39 得分 0

加密解密类:  
  using   System;  
  using   System.Text;  
  using   System.Globalization;  
  using   System.Security.Cryptography;      
  using   System.Windows.Forms;  
   
  namespace   Jh.Base.Encrypts  
  {  
  public   class   JhEncrypt      
  {      
       
  public   JhEncrypt()      
  {      
  }      
  public   static   string   Encrypt(string   original)  
  {  
  return   Encrypt(original,"JASONHEUNG");  
  }  
  public   static   string   Decrypt(string   original)  
  {  
  return   Decrypt(original,"JASONHEUNG",System.Text.Encoding.Default);  
  }  
  public   static   string   Decrypt(string   original,   string   key)  
  {  
  return   Decrypt(original,key,System.Text.Encoding.Default);  
  }  
  public   static   string   Decrypt(string   original,Encoding   encoding)  
  {  
  return   Decrypt(original,"JASONHEUNG",encoding);  
  }  
  ///   <summary>  
  ///   加密  
  ///   </summary>  
  ///   <param   name="original">原始文字</param>  
  ///   <param   name="key">密钥</param>  
  ///   <param   name="encoding">字符编码方案</param>  
  ///   <returns>密文</returns>  
  public   static   string   Encrypt(string   original,   string   key)      
  {      
  byte[]   buff   =   System.Text.Encoding.Default.GetBytes(original);      
  byte[]   kb   =   System.Text.Encoding.Default.GetBytes(key);  
  return   Convert.ToBase64String(Encrypt(buff,kb));        
  }      
       
  ///   <summary>  
  ///   解密  
  ///   </summary>  
  ///   <param   name="encrypted">密文</param>  
  ///   <param   name="key">密钥</param>  
  ///   <param   name="encoding">字符编码方案</param>  
  ///   <returns>明文</returns>  
  public   static   string   Decrypt(string   encrypted,   string   key,Encoding   encoding)      
  {          
  byte[]   buff   =   Convert.FromBase64String(encrypted);      
  byte[]   kb   =   System.Text.Encoding.Default.GetBytes(key);  
  return   encoding.GetString(Decrypt(buff,kb));        
  }      
   
  public   static   byte[]   MakeMD5(byte[]   original)  
  {  
  MD5CryptoServiceProvider   hashmd5   =   new   MD5CryptoServiceProvider();      
  byte[]   keyhash   =   hashmd5.ComputeHash(original);          
  hashmd5   =   null;      
  return   keyhash;  
  }  
   
  ///   <summary>  
  ///   加密  
  ///   </summary>  
  ///   <param   name="original">原始数据</param>  
  ///   <param   name="key">密钥</param>  
  ///   <returns></returns>  
  public   static   byte[]   Encrypt(byte[]   original,   byte[]   key)      
  {      
  TripleDESCryptoServiceProvider   des   =   new   TripleDESCryptoServiceProvider();          
  des.Key   =     MakeMD5(key);  
  des.Mode   =   CipherMode.ECB;      
       
  return   des.CreateEncryptor().TransformFinalBlock(original,   0,   original.Length);      
  }      
   
  ///   <summary>  
  ///   解密数据  
  ///   </summary>  
  ///   <param   name="encrypted">密文</param>  
  ///   <param   name="key">密钥</param>  
  ///   <returns></returns>  
  public   static   byte[]   Decrypt(byte[]   encrypted,   byte[]   key)      
  {      
  TripleDESCryptoServiceProvider   des   =   new   TripleDESCryptoServiceProvider();      
  des.Key   =     MakeMD5(key);      
  des.Mode   =   CipherMode.ECB;      
   
  return   des.CreateDecryptor().TransformFinalBlock(encrypted,   0,   encrypted.Length);  
  }      
       
  ///   <summary>  
  ///   加密  
  ///   </summary>  
  ///   <param   name="original">原始数据</param>  
  ///   <param   name="key">密钥</param>  
  ///   <returns></returns>  
  public   static   byte[]   Encrypt(byte[]   original)      
  {      
  byte[]   key   =   System.Text.Encoding.Default.GetBytes("JASONHEUNG");    
  return   Encrypt(original,key);      
  }      
   
  ///   <summary>  
  ///   解密数据  
  ///   </summary>  
  ///   <param   name="encrypted">密文</param>  
  ///   <param   name="key">密钥</param>  
  ///   <returns></returns>  
  public   static   byte[]   Decrypt(byte[]   encrypted)      
  {      
  byte[]   key   =   System.Text.Encoding.Default.GetBytes("JASONHEUNG");    
  return   Decrypt(encrypted,key);      
  }      
     
  }      
  }Top

8 楼zerohay(千里梦惊雪)回复于 2005-02-02 14:21:39 得分 0

这种题有多种解法  
  能不能对字符串直接操作~直接把一个字母进行加密Top

相关问题

  • 我有n个字符串,我如何检测出字符串中带有#的字符串?
  • 字符串问题 ,比如有一个字符串"我你他",可否将这个字符串按一定规则加密成其它字符,需要还原!!
  • 在一个长字符串中找出一个我需要的短字符串是哪一个函数?
  • 给你一个字符串s :string ,我要得到该字符串的第二个字符怎么办!
  • 一个字符串里,我想替换多个字符串,如果它们存在的话
  • 谁能给我个字符串和这个字符串的CRC32校验码,谢谢!
  • 我怎么把一个malloc的字符串变量得值复制给CString对象的字符串去?
  • 我想从字符串中提取一个子字符串应该用什么函数?
  • 在一个很长的字符串中,如何取出我想要的字符串呢?
  • 我想取一个字符串中某个字符做判断!

关键词

  • 字符
  • 加密
  • 解密
  • 数据
  • 字符串
  • encrypted
  • decrypt
  • jasonheung
  • original
  • 密钥

得分解答快速导航

  • 帖主:zerohay
  • yufenfeila

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo