• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#使用伪随机数实现加密用户密码的方法

C#使用伪随机数实现加密用户密码的方法

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了伪随机数,伪随机数发生器,伪随机数生成算法,伪随机数算法,什么是伪随机数等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文所述实例为使用伪随机数进行用户密码加密,这段代码为核心部分主要代码,需要配合其它的程序实现,感兴趣的读者可以自己进一步加以完善,不费话了,下面列出主要代码:

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 
namespace PRanDataEncrypt 
{ 
public partial class Form1 : Form 
{ 
public Form1() 
{ 
InitializeComponent(); 
} 
private void button1_Click(object sender, EventArgs e) 
{ 
if (textBox3.Text != "") 
{ 
if (DecryptPwd(textBox3.Text) == textBox2.Text) 
MessageBox.Show("用户登录成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); 
else 
MessageBox.Show("用户密码错误!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); 
} 
} 

private void button2_Click(object sender, EventArgs e) 
{ 
textBox1.Text = textBox2.Text = textBox3.Text = string.Empty; 
textBox2.Focus(); 
} 

private void textBox2_TextChanged(object sender, EventArgs e) 
{ 
textBox3.Text = EncryptPwd(textBox2.Text); 
} 

//定义加密用户密码所用的伪随机数 
private string randStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz"; 
#region 使用伪随机数加密用户登录密码 
/// <summary> 
/// 使用伪随机数加密用户登录密码 
/// </summary> 
/// <param name="str">用户登录密码</param> 
/// <returns>加密后的用户登录密码</returns> 
private string EncryptPwd(string str) 
{ 
byte[] btData = Encoding.Default.GetBytes(str); 
int j, k, m; 
int len = randStr.Length; 
StringBuilder sb = new StringBuilder(); 
Random rand = new Random(); 
for (int i = 0; i < btData.Length; i++) 
{ 
j = (byte)rand.Next(6); 
btData[i] = (byte)((int)btData[i] ^ j); 
k = (int)btData[i] % len; 
m = (int)btData[i] / len; 
m = m * 8 + j; 
sb.Append(randStr.Substring(k, 1) + randStr.Substring(m, 1)); 
} 
return sb.ToString(); 
} 
#endregion 
#region 解密用户登录密码 
/// <summary> 
/// 解密用户登录密码 
/// </summary> 
/// <param name="str">经过加密的用户登录密码</param> 
/// <returns>解密后的用户登录密码</returns> 
private string DecryptPwd(string str) 
{ 
try 
{ 
int j, k, m, n = 0; 
int len = randStr.Length; 
byte[] btData = new byte[str.Length / 2]; 
for (int i = 0; i < str.Length; i += 2) 
{ 
k = randStr.IndexOf(str[i]); 
m = randStr.IndexOf(str[i + 1]); 
j = m / 8; 
m = m - j * 8; 
btData[n] = (byte)(j * len + k); 
btData[n] = (byte)((int)btData[n] ^ m); 
n++; 
} 
return Encoding.Default.GetString(btData); 
} 
catch { return ""; } 
} 
#endregion 
} 
}
</div> </div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C#使用伪随机数实现加密用户密码的方法
  • c#循环中产生伪随机数

相关文章

  • 2017-05-28用C#的params关键字实现方法形参个数可变示例
  • 2017-05-28C#实现将程序运行信息写入日志的方法
  • 2017-05-28C#中ToString数据类型格式大全(千分符)
  • 2017-05-28C#实现GridView导出Excel实例代码
  • 2017-05-28C#基于基姆拉尔森算法计算指定日期是星期几的方法
  • 2017-05-28C#中方括号[]的语法及作用介绍
  • 2017-05-28asp.net core项目mvc权限控制:分配权限
  • 2017-05-28详解C#中的out和ref
  • 2017-05-28C#使用Ado.net读取Excel表的方法
  • 2017-05-28VS2013创建Windows服务与调试服务的图文方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#图片切割、图片压缩、缩略图生成代码汇总
    • C# yield在WCF中的错误用法(一)
    • C#正则表达式匹配HTML中的图片路径,图片地址代码
    • C#使用系统方法发送异步邮件完整实例
    • C#中用管理员身份运行程序代码实例
    • C#中38个常用运算符的优先级的划分和理解
    • C#简单写入xml文件的方法
    • C#中枚举类型和radiobox关联操作的方法
    • C#实现排列组合算法完整实例
    • C#实现获取IIS站点及虚拟目录信息的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有