关于c#实现des的实例问题

问题描述

c#实现des加密中,对于解密还是有问题,请教下谁能帮我解决这个问题或者谁能帮我改动下,不甚感激。usingSystem;usingSystem.IO;usingSystem.Data;usingSystem.Text;usingSystem.Diagnostics;usingSystem.Security;usingSystem.Security.Cryptography;classDes{//方法//加密方法publicstringEncrypt(stringpToEncrypt,stringsKey){DESCryptoServiceProviderdes=newDESCryptoServiceProvider();//把字符串放到byte数组中//原来使用的UTF8编码,我改成Unicode编码了,不行byte[]inputByteArray=Encoding.Default.GetBytes(pToEncrypt);//byte[]inputByteArray=Encoding.Unicode.GetBytes(pToEncrypt);//建立加密对象的密钥和偏移量//原文使用ASCIIEncoding.ASCII方法的GetBytes方法//使得输入密码必须输入英文文本if(sKey.Length!=8)return("wrongkey");des.Key=ASCIIEncoding.ASCII.GetBytes(sKey);des.IV=ASCIIEncoding.ASCII.GetBytes(sKey);MemoryStreamms=newMemoryStream();CryptoStreamcs=newCryptoStream(ms,des.CreateEncryptor(),CryptoStreamMode.Write);//Writethebytearrayintothecryptostream//(Itwillendupinthememorystream)cs.Write(inputByteArray,0,inputByteArray.Length);cs.FlushFinalBlock();//Getthedatabackfromthememorystream,andintoastringStringBuilderret=newStringBuilder();foreach(bytebinms.ToArray()){//Formatashexret.AppendFormat("{0:X2}",b);}ret.ToString();returnret.ToString();}//解密方法publicstringDecrypt(stringpToDecrypt,stringsKey){DESCryptoServiceProviderdes=newDESCryptoServiceProvider();//Puttheinputstringintothebytearraytry{byte[]inputByteArray=newbyte[pToDecrypt.Length/2];for(intx=0;x<pToDecrypt.Length/2;x++){inti=(Convert.ToInt32(pToDecrypt.Substring(x*2,2),16));inputByteArray[x]=(byte)i;}//建立加密对象的密钥和偏移量,此值重要,不能修改//inputByteArray=Convert.FromBase64String(pToDecrypt);des.Key=ASCIIEncoding.ASCII.GetBytes(sKey);des.IV=ASCIIEncoding.ASCII.GetBytes(sKey);MemoryStreamms=newMemoryStream();CryptoStreamcs=newCryptoStream(ms,des.CreateDecryptor(),CryptoStreamMode.Write);cs.Write(inputByteArray,0,inputByteArray.Length);cs.FlushFinalBlock();StringBuilderret=newStringBuilder();returnSystem.Text.Encoding.Default.GetString(ms.ToArray());}catch(Exceptionef){returnef.Message;}}classProgram{staticvoidMain(string[]args){Desdes1=newDes();Console.WriteLine("请输入字符串:");stringstr=Console.ReadLine();Console.WriteLine("加密后:");Console.WriteLine(des1.Encrypt(str,"12345678"));Console.WriteLine("解密后:");Console.WriteLine(des1.Decrypt(str,"12345678"));Console.Read();}}}

解决方案

解决方案二:
路过帮顶=============11月6日,论坛升级公告,积分已经做了调整!此次调整增加了两个新的可用分获取渠道:1:帖子被推荐(加精)后,帖主可以获得88分的可用分奖励;2:帖子结帖后会返还帖主50%的悬赏分,无满意结帖不返还分数;3:接下来会不断增加新的可用分获取途径,比如参与活动赠送等,请大家多关注;

时间: 2024-09-29 21:03:39

关于c#实现des的实例问题的相关文章

JavaScript实现的encode64加密算法实例分析_javascript技巧

本文实例讲述了JavaScript实现的encode64加密算法.分享给大家供大家参考.具体如下: 这段JavaScript代码可实现encode64加密算法,速度还是相当不错的. //encode64编解码 (function() { var codeChar = "PaAwO65goUf7IK2vi9-xq8cFTEXLCDY1Hd3tV0ryzjbpN_BlnSs4mGRkQWMZJeuh"; window.encode64 = function(str) { var s = &

Python 3: 加密简介

Python 3 的标准库中没多少用来解决加密的,不过却有用于处理哈希的库.在这里我们会对其进行一个简单的介绍,但重点会放在两个第三方的软件包:PyCrypto 和 cryptography 上.我们将学习如何使用这两个库,来加密和解密字符串. 哈希 如果需要用到安全哈希算法或是消息摘要算法,那么你可以使用标准库中的 hashlib 模块.这个模块包含了符合 FIPS(美国联邦信息处理标准)的安全哈希算法,包括 SHA1,SHA224,SHA256,SHA384,SHA512 以及 RSA 的

python实现DES加密解密方法实例详解

  本文实例讲述了python实现DES加密解密方法.分享给大家供大家参考.具体分析如下: 实现功能:加密中文等字符串 密钥与明文可以不等长 这里只贴代码,加密过程可以自己百度,此处python代码没有优化 1. desstruct.py DES加密中要使用的结构体 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41

Python基于DES算法加密解密实例

  本文实例讲述了Python基于DES算法加密解密实现方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 6

PHP、Java des加密解密实例

  这篇文章主要介绍了PHP.Java des加密解密实例,des加密是对称加密中在互联网应用的比较多的一种加密方式,本文分别给出了PHP和JAVA版本的实现代码,需要的朋友可以参考下 des加密是对称加密中在互联网应用的比较多的一种加密方式,php 通过mcrypt扩展库来支持des加密,要在Php中使用des加密,需要先安装mcrypt扩展库 下面是加密解密的实例 代码如下: $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_

PHP、Java des加密解密实例_php实例

des加密是对称加密中在互联网应用的比较多的一种加密方式,php 通过mcrypt扩展库来支持des加密,要在Php中使用des加密,需要先安装mcrypt扩展库 下面是加密解密的实例 复制代码 代码如下: $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);  $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);  $key = "This is a very secre

java中使用DES加密解密实例_java

在前面介绍了一些加密解密类的使用,这里综合起来做一个简单的测试,代码如下: MainActivity: 复制代码 代码如下: package com.home.testdes; import android.os.Bundle;import android.util.Log;import android.app.Activity; public class MainActivity extends Activity {  @Override protected void onCreate(Bun

PHP中加密解密函数与DES加密解密实例

 例子,php加密解密的例子 加密函数:   代码如下: /* *功能:对字符串进行加密处理 *参数一:需要加密的内容 *参数二:密钥 */ function passport_encrypt($str,$key){ //加密函数  srand((double)microtime() * 1000000);  $encrypt_key=md5(rand(0, 32000));  $ctr=0;  $tmp='';  for($i=0;$i<strlen($str);$i++){   $ctr=$

兼容PHP和Java的des加密解密代码分享_php实例

php代码: <?php class DES { var $key; var $iv; //偏移量 function DES($key, $iv=0) { $this->key = $key; if($iv == 0) { $this->iv = $key; } else { $this->iv = $iv; } } //加密 function encrypt($str) { $size = mcrypt_get_block_size ( MCRYPT_DES, MCRYPT_MO