关于 --DES加密、解密字符串算法(java版)-- 出错的问题。 [问题点数:10分,结帖人crevenn]

Bbs1
本版专家分:11
结帖率 95.45%
Bbs1
本版专家分:11
Bbs1
本版专家分:11
Bbs3
本版专家分:878
Bbs1
本版专家分:11
Bbs1
本版专家分:11
Bbs3
本版专家分:878
Bbs1
本版专家分:41
DES加密 DES解密
des<em>算法</em> DES DES<em>加密</em> DES<em>解密</em>des<em>算法</em> DES DES<em>加密</em> DES<em>解密</em>des<em>算法</em> DES DES<em>加密</em> DES<em>解密</em>
DES加密解密问题
<em>解密</em><em>算法</em>如下:rn[code=C#]rn下面给出的函数和变量值不能变,请教高手如何写<em>加密</em><em>算法</em>?rn调用<em>解密</em>方法的函数如下,其中aaa.txt中的内容为<em>加密</em>内容rnpublic void testDcode()rnrn string rst;rn string myFile= Server.MapPath(".") + "\\aaa.txt";rn rn string A0 = "SZz88PyoeJCJEHwsveXl5YWZna2pqa2VAA==";rnrn StreamReader reader = new StreamReader(myFile, new UTF7Encoding());rnrn string encryptStr = "SZz88PyoeJCJEHwsveXl5YWZna2pqa2VAA=="; rnrn string A1 = reader.ReadToEnd();rn A1 = A1.Trim();rn reader.Close();rn rst = decode(A0, A1);rnrn rn Response.Write(rst);rnrnrn public string decode(string A_0,string A_1)//<em>解密</em>函数rn rn byte[] buffer = Convert.FromBase64String(A_0);rn if (buffer.Length < 1)rn rn throw new Exception("异常");rn rn byte num = buffer[0];rn byte[] buffer2 = new byte[buffer.Length - 1];rn for (int i = 0; i < buffer2.Length; i++)rn rn buffer2[i] = buffer[i + 1];rn rn string str = a(buffer2, num);rn byte[] rgbKey = Convert.FromBase64String(str.Substring(0, str.IndexOf("+++")));rn byte[] rgbIV = new byte[] 1, 2, 3, 4, 5, 6, 7, 8, 9, 0x10, 0x11, 0x12, 0x13, 20, 0x15, 0x16 ;rn DES des = new DESCryptoServiceProvider();rn rn UnicodeEncoding encoding = new UnicodeEncoding();rn byte[] bytes = encoding.GetBytes(A_1);rn MemoryStream stream = new MemoryStream();rn CryptoStream stream2 = new CryptoStream(stream, des.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);rn rn stream2.Write(bytes, 0, bytes.Length);rn stream2.Close();rn return encoding.GetString(stream.ToArray());rn rnrnrn private static string a(byte[] A_0, byte A_1)rn rn byte[] bytes = new byte[A_0.Length];rn for (int i = 0; i < A_0.Length; i++)rn rn byte num = A_0[i];rn int num3 = num ^ A_1;rn bytes[i] = a(byte.Parse(num3.ToString()), 2);rn rn char[] chars = new char[A_0.Length];rn ASCIIEncoding encoding = new ASCIIEncoding();rn encoding.GetDecoder().GetChars(bytes, 0, bytes.Length, chars, 0);rn string str = "";rn foreach (char ch in chars)rn rn str = str + ch;rn rn return str;rn rnrn private static byte a(byte A_0, int A_1)rn rn int num = 0;rn int num2 = A_0;rn for (int i = 1; i > 1;rn if (num > 0)rn rn num2 += 0x80;rn rn rn return byte.Parse(num2.ToString());rn rnrn[/code]
DES加密解密(JS、Java
有关DES<em>加密</em><em>解密</em>的工具类,提供JS、Java两个<em>版</em>本,只需要引入该类和文件,直接调用方法。
java中的 DES 加密解密
DES类rn<em>--</em><em>--</em><em>--</em><em>--</em><em>--</em><em>--</em><em>--</em><em>--</em>rnpackage dao;rnimport <em>java</em>.security.Security;rnimport <em>java</em>x.crypto.Cipher;rnimport <em>java</em>x.crypto.KeyGenerator;rnimport <em>java</em>x.crypto.SecretKey;rnrnpublic class DES rn rn public static String ALGORITHM_DES="DES"; //<em>加密</em><em>算法</em>的名称 rn public static KeyGenerator keygen; //密钥生成器 rn public static SecretKey secretKey; //密钥 rn public static Cipher cipher; //密码器rn public byte[] bytes;rn rn staticrn Security.addProvider(new com.sun.crypto.provider.SunJCE());rn tryrn keygen=KeyGenerator.getInstance(ALGORITHM_DES);rn secretKey=keygen.generateKey();rn cipher=Cipher.getInstance(ALGORITHM_DES);rn catch(Exception e)rn e.printStackTrace();rn rn rn rn //<em>加密</em>rn public byte[] encryptor(String str)rn try rn cipher.init(Cipher.ENCRYPT_MODE, secretKey); //初始化密码器,用密钥 secretKey 进入<em>加密</em>模式rn bytes=cipher.doFinal(str.getBytes()); //<em>加密</em>rn catch (Exception e) rn e.printStackTrace();rn rn rn return bytes;rn rn rn //<em>解密</em>rn public String decryptor(byte[] buff)rn try rn cipher.init(Cipher.DECRYPT_MODE, secretKey); //初始化密码器,用密钥 secretKey 进入<em>解密</em>模式rn bytes=cipher.doFinal(buff);rn catch (Exception e) rn e.printStackTrace();rn rn return (new String(bytes));rn rnrnrnrnrnindex.jsprn<em>--</em><em>--</em><em>--</em><em>--</em><em>--</em>-rn![index.jsp](https://img-ask.csdn.net/upload/201602/23/1456203162_827018.png)rnrn%>rnDemornrnrnrnAction类rn<em>--</em><em>--</em><em>--</em><em>--</em><em>--</em><em>--</em><em>--</em><em>--</em><em>--</em><em>--</em><em>--</em>-rn![Action类](https://img-ask.csdn.net/upload/201602/23/1456203135_614689.png)rnrnrn我的<em>问题</em>:在 index.jsp 页面里提交的超链接 Demo 提交到 Action ,但是一点击,后台就报错:rn<em>java</em>x.crypto.IllegalBlockSizeException: Input length must be multiple of 8 when decrypting with padded cipherrn at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.<em>java</em>:750)rn at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.<em>java</em>:676)rn at com.sun.crypto.provider.DESCipher.engineDoFinal(DESCipher.<em>java</em>:314)rn at <em>java</em>x.crypto.Cipher.doFinal(Cipher.<em>java</em>:2087)rn at dao.DES.decryptor(DES.<em>java</em>:44)rn at filter.MyFilter.doFilter(MyFilter.<em>java</em>:36)rn at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.<em>java</em>:239)rn at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.<em>java</em>:206)rn at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.<em>java</em>:212)rn at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.<em>java</em>:106)rn at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.<em>java</em>:502)rn at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.<em>java</em>:141)rn at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.<em>java</em>:79)rn at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.<em>java</em>:616)rn at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.<em>java</em>:88)rn at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.<em>java</em>:521)rn at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.<em>java</em>:1096)rn at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.<em>java</em>:674)rn at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.<em>java</em>:1500)rn at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.<em>java</em>:1456)rn at <em>java</em>.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)rn at <em>java</em>.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)rn at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.<em>java</em>:61)rn at <em>java</em>.lang.Thread.run(Unknown Source)rn<em>java</em>.lang.NullPointerExceptionrn at <em>java</em>.lang.String.(Unknown Source)rn at dao.DES.decryptor(DES.<em>java</em>:48)rn at filter.MyFilter.doFilter(MyFilter.<em>java</em>:36)rn at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.<em>java</em>:239)rn at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.<em>java</em>:206)rn at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.<em>java</em>:212)rn at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.<em>java</em>:106)rn at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.<em>java</em>:502)rn at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.<em>java</em>:141)rn at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.<em>java</em>:79)rn at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.<em>java</em>:616)rn at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.<em>java</em>:88)rn at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.<em>java</em>:521)rn at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.<em>java</em>:1096)rn at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.<em>java</em>:674)rn at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.<em>java</em>:1500)rn at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.<em>java</em>:1456)rn at <em>java</em>.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)rn at <em>java</em>.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)rn at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.<em>java</em>:61)rn at <em>java</em>.lang.Thread.run(Unknown Source)rn<em>解密</em>前:product_id=[B@3242efrnrn是哪里写的不对,请高手指点,我的目的是从 index.jsp 把值(product_id)进行<em>加密</em>,在 Action 里面取出 <em>加密</em>后的<em>字符串</em>,进行<em>解密</em>,但<em>解密</em>那一块有<em>问题</em>,可能是 DES 类写的有<em>问题</em>,请高手帮忙在原有的代码基础上修改。成分感激!!
Java中的DES加密解密
实现<em>java</em>中利用DES<em>加密</em><em>算法</em>进行<em>加密</em>
Java DES 加密解密实例
一、Java密码学结构设计遵循两个原则: 1) <em>算法</em>的独立性和可靠性。 2) 实现的独立性和相互作用性。 <em>算法</em>的独立性是通过定义密码服务类来获得。用户只需了<em>解密</em>码<em>算法</em>的概念,而不用去关心如何实现这些概念。实现的独立性和相互作用性通过密码服务提供器来实现。密码服务提供器是实现一个或多个密码服务的一个或多个程序包。软件开发商根据一定接口,将各种<em>算法</em>实现后,打包成一个提供器,用户可以安...
Java DES 加密解密源码
Java密码学结构设计遵循两个原则:1) <em>算法</em>的独立性和可靠性。2) 实现的独立性和相互作用性。<em>算法</em>的独立性是通过定义密码服务类来获得。用户只需了<em>解密</em>码<em>算法</em>的概念,而不用去关心如何实现这些概念。实现的独立性和相互作用性通过密码服务提供器来实现。密码服务提供器是实现一个或多个密码服务的一个或多个程序包。软件开发商根据一定接口,将各种<em>算法</em>实现后,打包成一个提供器,用户可以安装不同的提供器。安装和配置提
Java DES 加密解密实现
Java密码学结构设计遵循两个原则: 1) <em>算法</em>的独立性和可靠性。 2) 实现的独立性和相互作用性。 <em>算法</em>的独立性是通过定义密码服务类来获得。用户只需了<em>解密</em>码<em>算法</em>的概念,而不用去关心如何实现这些概念。实现的独立性和相互作用性通过密码服务提供器来实现。密码服务提供器是实现一个或多个密码服务的一个或多个程序包。软件开发商根据一定接口,将各种<em>算法</em>实现后,打包成一个提供器,用户可以安装不
C# 加密 java解密 (DES)
源码 博文链接:https://callan.iteye.com/blog/227784
java实现DES加密解密
import <em>java</em>x.crypto.Cipher; import <em>java</em>x.crypto.KeyGenerator; import <em>java</em>x.crypto.SecretKey; import <em>java</em>.security.Key; import <em>java</em>.security.SecureRandom; import <em>java</em>.util.Scanner; im
DES C#加密 Java解密
DES C#<em>加密</em> Java<em>解密</em> C# DES<em>加密</em> using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Security.Cryptography; public static string EncryptDES(s...
DES - JS和JAVA的解密加密
项目中用到了H5使用JS对隐私数据进行<em>加密</em>,后台JAVA<em>解密</em>。 资源链接 :https://download.csdn.net/download/j080624/10308738
java des加密与js解密
<em>java</em>代码: import <em>java</em>.io.IOException; import <em>java</em>.security.SecureRandom; import <em>java</em>x.crypto.Cipher; import <em>java</em>x.crypto.SecretKey; import <em>java</em>x.crypto.SecretKeyFactory; import <em>java</em>x.crypto.spec.DESK...
关于DES加密/解密(VB)
我在网上找到DES<em>加密</em><em>解密</em>的函数,rn可把参数传进后,<em>加密</em><em>解密</em>得到的数据都是空值。rn不知道哪位同行有成功加/<em>解密</em>的例子啊?rn我的邮箱:wy612@126.comrnrn谢谢各位了!
关于des文件的加密解密
做断网情况下的设备激活,选择了将数据放在机器分区下面,但是文件比较隐私,不能让别人看到内容,于是用了<em>加密</em>文件,然后在进行系统打包。结果选择了des<em>加密</em>方式,<em>加密</em>后的文件也可以<em>解密</em>,不过后来检查出<em>问题</em>,当<em>加密</em>后,把文件发给我的另一个设备发现不能进行<em>解密</em>,原因是key不一致,原来每次的key都不一样,后来只能指定key值了。这样<em>问题</em>解决了 public class Locker {
des加密java
好好东好好东好好东好好东好好东好好东好好东好好东好好东好好东好好东好好东好好东好好东好好东好好东好好东
C# 对称加解密
///         /// DES<em>加密</em>调用         ///         /// 需要<em>加密</em>的<em>字符串</em>         /// <em>加密</em>结果         public static string DESEncrypt(string inputStr)         {             return Encrypt(inputStr,"Futpower");
求助加密解密问题DES
资料上找到的<em>加密</em>、<em>解密</em>类,DES<em>算法</em>的rn<em>加密</em>类没<em>问题</em>,可以正常使用rn<em>解密</em>类就有<em>问题</em>了,提示错误如下:rnhttp://dl.vmall.com/c02nfzs9gtrnrn错误位置在代码倒数第六行rnrn请高人指教了,谢谢rnrn[code=C#]rn private static byte[] key = new byte[] 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 ;rn private static byte[] iv = new byte[] 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 ;rnrn /// rn /// rn /// rn /// 待<em>加密</em>的明文<em>字符串</em>rn /// <em>加密</em>后的<em>字符串</em>rn public static string EncryptString(string notEncryptStr)rn rn DESCryptoServiceProvider des = new DESCryptoServiceProvider();rnrn byte[] byteNotEncrypt = Encoding.UTF8.GetBytes(notEncryptStr);rn MemoryStream encryptMs = new MemoryStream();rn CryptoStream encryptCs = new CryptoStream(encryptMs, des.CreateEncryptor(key,iv), CryptoStreamMode.Write);rnrn //<em>加密</em>数据rn encryptCs.Write(byteNotEncrypt, 0, byteNotEncrypt.Length);rn encryptCs.FlushFinalBlock();rn encryptMs.Seek(0, SeekOrigin.Begin);rnrn //将<em>加密</em>后的数据读取出来rn byte[] byteEncrypt = new byte[1024];rn int i = encryptMs.Read(byteEncrypt, 0, 1024);rnrn encryptCs.Close();rnrn //将<em>加密</em>后的字节转换为BASE64编码rn string decryptStr = Convert.ToBase64String(byteEncrypt, 0, i);rn return decryptStr;rn rnrn void test()rn rn string str1 = "Hello";rn string str2 = myEncrypt.EncryptString(str1);rn rnrn /// rn /// <em>解密</em>rn /// rn /// 待<em>解密</em>的密文<em>字符串</em>rn /// <em>解密</em>后的<em>字符串</em>rn public static string DecryptString(string decryptStr)rn rn DESCryptoServiceProvider des = new DESCryptoServiceProvider();rnrnrn byte[] byteNotDecrypt = Convert.FromBase64String(decryptStr);rn MemoryStream decryptMs = new MemoryStream(byteNotDecrypt);rn CryptoStream decryptCs = new CryptoStream(decryptMs, des.CreateDecryptor(key, iv), CryptoStreamMode.Read);rnrn //<em>解密</em>数据rn byte[] byteDecrypt = new byte[1024];rn int i = decryptCs.Read(byteDecrypt, 0, 1024);//这里提示错误了,"流不支持读取。"rn decryptCs.Close();rnrn //将<em>解密</em>后的字节转换为BASE64编码rn string notEncryptStr = Encoding.UTF8.GetString(byteDecrypt, 0, i);rn return notEncryptStr;rn rn rn[/code]rn
关于des加密,没法解密问题
我网络上搜集了2套用c实现des<em>加密</em>的代码,测试了下,自身都可以<em>加密</em><em>解密</em>。但是我程序1<em>加密</em>数据,用程序2<em>解密</em>却<em>解密</em>不了。rn请教,是不是<em>加密</em>实现方法不一样,所以没法<em>解密</em>。里面的实现方式基本看不大懂。
DES加密解密的方法
[code=&quot;<em>java</em>&quot;] import sun.misc.BASE64Encoder; import sun.misc.BASE64Decoder; import <em>java</em>x.crypto.*; import <em>java</em>x.crypto.spec.DESKeySpec; import <em>java</em>x.crypto.spec.IvParameterSpec; import jav...
DES加密解密算法
DES<em>加密</em>与<em>解密</em><em>算法</em>实现源代码,是我们上课时做的作业
DES加密解密代码
package com.bopomofo.common; import <em>java</em>.io.IOException; import <em>java</em>.security.InvalidKeyException; import <em>java</em>.security.NoSuchAlgorithmException; import <em>java</em>.security.SecureRandom; import <em>java</em>....
DES的加密解密
用c编的des<em>加密</em><em>解密</em>的控制台程序。
DES加密/解密
使用<em>java</em>技术编写的Des<em>加密</em>/<em>解密</em>,的工具类,已亲测可完全正确使用,无bug
DES加密/解密 小工具
des <em>加密</em><em>解密</em>工具 1、将要 <em>加密</em>/<em>解密</em> 的密码 2、公钥 3、<em>加密</em>button <em>解密</em> botton 4、 <em>加密</em>或<em>解密</em>出来的结果
DES加密解密
C#编写的DES<em>加密</em>和<em>解密</em>方法,可直接调用使用,有需要的朋友可以下载使用!
DES/3DES加密解密
〇、前言:         最近在项目中,涉及到与第三方厂家系统进行对接时,在参数传递过程中考虑到了数据的安全性,故双方采用3DES进行对传递参数的加<em>解密</em>,因此,进一步了解了下3DES的加<em>解密</em><em>算法</em>,再次进行梳理。 一、3DES<em>算法</em>原理        3DES(又称Triple DES),是进行了三重数据<em>加密</em>,即:每个数据块进行了三次DES<em>加密</em><em>算法</em>,使用3条64位的密钥对数据进行三次<em>加密</em>,故比
DES与3DES加密解密
基于net的DES与3DES<em>加密</em>数据与<em>解密</em>源码,vb.net 实现。
DES 加密解密
DES<em>加密</em>,<em>解密</em>是根据自定义的key字符,来进行<em>加密</em><em>解密</em> 而且每一次得到的<em>加密</em>串都不一样 package com.wamei.util; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; import <em>java</em>.io.IOException; import <em>java</em>.security.SecureRandom; i
DES的加密解密(可逆)
DES
DES加密解密工具
DES<em>加密</em><em>解密</em>.....................................................................................................
DES加密解密
DES<em>加密</em>与<em>解密</em>,用友NC的用户密码可以通过该工具<em>解密</em>。
DES加密/解密文件
   最近在工作中,需要<em>加密</em>/<em>解密</em>一个数据文件,本来准备用目前的环境下的CA系统去<em>加密</em>/<em>解密</em>文件,无奈<em>解密</em>时厂商的Atach界面文件存在<em>问题</em>,通过咨询厂商也没有解决,最终只能直接解决;最后决定用普遍的DES<em>加密</em><em>解密</em>文件;    在这里需要说一下,在开始<em>加密</em>时,读取一段文件流,然后通过DES标准<em>加密</em>,写入<em>加密</em>文件时,一定要紧跟着写入一个分隔符(如0x0A)。在<em>解密</em>的时候,根据分割符,分段读取字节流...
iOS DES加密解密
这里写代码//<em>加密</em> - (NSString *) encryptUseDES:(NSString *)plainText key:(NSString *)key { NSString *ciphertext = nil; const char *textBytes = [plainText UTF8String]; NSUInteger dataLength = [plain
des 3des 加密 解密
des 3des <em>加密</em><em>解密</em> c语言
DES加密/解密程序.
//获取或设置对称<em>算法</em>的初始化向量rn private static byte[] DESIV = new byte[] 75, 158, 46, 97, 78, 57, 17, 36;rnrn //<em>加密</em>函数:rnrn public static string Encode(string Encode_String)rn rn rn DESCryptoServiceProvider objDES = new DESCryptoServiceProvider();rn MemoryStream objMemoryStream = new MemoryStream();rn //用指定的 Key 和初始化向量 (IV) 创建对称数据<em>加密</em>标准 (DES) <em>加密</em>器对象rn CryptoStream objCryptoStream = new CryptoStream(objMemoryStream,objDES.CreateEncryptor(DESKey,DESIV),CryptoStreamMode.Write);rn StreamWriter objStreamWriter = new StreamWriter(objCryptoStream);rn objStreamWriter.Write(Encode_String);rn objStreamWriter.Flush();rn objCryptoStream.FlushFinalBlock();rn objMemoryStream.Flush();rn return Convert.ToBase64String(objMemoryStream.GetBuffer(), 0, (int)objMemoryStream.Length);rn rnrn //<em>解密</em>函数rn public static string Decode(string Encode_String)rn rn DESCryptoServiceProvider objDES = new DESCryptoServiceProvider();rn byte[] Input = Convert.FromBase64String(Encode_String);rn MemoryStream objMemoryStream = new MemoryStream(Input);rn //用指定的 Key 和初始化向量 (IV) 创建对称数据<em>加密</em>标准 (DES) <em>解密</em>器对象rn CryptoStream objCryptoStream = new CryptoStream(objMemoryStream,objDES.CreateDecryptor(DESKey,DESIV),CryptoStreamMode.Read);rn StreamReader objStreamReader = new StreamReader(objCryptoStream);rn return objStreamReader.ReadToEnd();rn rnrn private void button1_Click_1(object sender, System.EventArgs e)rn rn //<em>加密</em>rn tryrn rn string temp = textBox1.Text ;rn textBox2.Text = Encode(temp);rn rn catch(System.Exception ee)rn rn MessageBox.Show(ee.Message);rn rnrn rnrn private void button2_Click(object sender, System.EventArgs e)rn rn //<em>解密</em>rn textBox3.Text=Decode(textBox2.Text);rn rnrn此效果图演示请访问http://www.zhangjian.net获取更多的经典例子.
DES 加密 解密 源码
DES <em>加密</em> <em>解密</em> 源码 function EncryStr(Str, Key: String): String; function DecryStr(Str, Key: String): String; function EncryStrHex(Str, Key: String): String; function DecryStrHex(StrHex, Key: String): String;
DES加密解密
这个类可以直接使用,<em>加密</em>字符,并且可以<em>解密</em>字符,方便快捷
DES加密解密程序
DES<em>加密</em>与<em>解密</em><em>算法</em>的C程序,在main()函数中指定明文、密钥、密文对文件进行加<em>解密</em>,如:DES_Encrypt("f.txt","computer","c.txt")。
DES加密解密实例
DES<em>加密</em>和<em>解密</em>,用于用户验证,INI存储密码或验证用户注册信息等等 有奄码
DES 加密/解密 实例
package encrypt.util; import <em>java</em>.security.Key; import <em>java</em>x.crypto.Cipher; import <em>java</em>x.crypto.KeyGenerator; import <em>java</em>x.crypto.SecretKey; import <em>java</em>x.crypto.SecretKeyFactory; import <em>java</em>
AES、DES 加密解密
系统默认支持128位<em>加密</em>, 超过128位(如:192、256位),需要修改jdk系统默认限制,具体操作参考: http://blog.itpub.net/23071790/viewspace-723489/ 使用AES<em>加密</em>时,当密钥大于128时,代码会抛出<em>java</em>.security.InvalidKeyException: Illegal key size or default param...
DES + BASE64 加密解密
DES + BASE64 import org.apache.commons.codec.binary.Base64; /** DES + BASE64 */ public byte[] encrypt(final byte[] content, byte[] desKey) { ...
DES加密/解密是什么?
DES<em>加密</em>/<em>解密</em>是什么?rn使用它进行<em>加密</em>和<em>解密</em>有什么优点和缺点?
des加密解密
crypto.IllegalBlockSizeException;import <em>java</em>x.crypto.SecretKey;import <em>java</em>x.crypto.SecretKeyFactory;import <em>java</em>x.crypto.spec.PBEKeySpec;import <em>java</em>x.crypto.spec.PBEParameterSpec; public class DesEncrypter {  Cipher ecipher;  Cipher dcipher;   // 8-byte S
DES 加密 解密
import <em>java</em>.security.NoSuchAlgorithmException; import <em>java</em>.security.SecureRandom; import <em>java</em>x.crypto.Cipher; import <em>java</em>x.crypto.KeyGenerator; import <em>java</em>x.crypto.SecretK...
DES加密解密演示程序
DES<em>加密</em><em>解密</em>演示程序,当输入的文本比较大时,可以自动进行三次DES<em>加密</em>和<em>解密</em>。同时,可以手动输入初始的密码,也可以使用默认的密码。
vb.net DES加密解密
vb.net DES<em>加密</em>与<em>解密</em>
DES加密解密代码
DES<em>加密</em>与<em>解密</em>代码用C语言实验的,有兴趣的同学可以看看哦!
功能强大的DES加密解密
是我们的实验作业,写了很久,希望有用,用MFC做的。
DES加密解密.zip
<em>java</em>写的关于DES<em>加密</em>和<em>解密</em>工具,可以对<em>字符串</em>进行<em>加密</em>和<em>解密</em>操作
DES加密、DES解密、AES加密、AES解密
个人例子,VS2013,DES<em>加密</em>、DES<em>解密</em>,AES<em>加密</em>,AES<em>解密</em>,
DES 解密出错;怎么回事!!!!
[img=https://img-bbs.csdn.net/upload/201401/04/1388818663_79456.jpg][/img]rnrn<em>加密</em>过程:rnrnpublic static string Encrypt(string Text)rnrn return Encrypt(Text, "XXXXX992");rnrnrnrnpublic static string Decrypt(string Text, string sKey)rnrn DESCryptoServiceProvider provider = new DESCryptoServiceProvider();rn int num = Text.Length / 2;rn byte[] buffer = new byte[num];rn for (int i = 0; i < num; i++)rn rn int num3 = Convert.ToInt32(Text.Substring(i * 2, 2), 0x10);rn buffer[i] = (byte) num3;rn rn provider.Key = Encoding.ASCII.GetBytes(FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));rn provider.IV = Encoding.ASCII.GetBytes(FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));rn MemoryStream stream = new MemoryStream();rn CryptoStream stream2 = new CryptoStream(stream, provider.CreateDecryptor(), CryptoStreamMode.Write);rn stream2.Write(buffer, 0, buffer.Length);rn stream2.FlushFinalBlock();rn return Encoding.Default.GetString(stream.ToArray());rnrn<em>解密</em>时:rnrnpublic static string Encrypt(string Text)rnrn return Encrypt(Text, "XXXXX992");rnrnrnpublic static string Decrypt(string Text, string sKey)rnrn DESCryptoServiceProvider provider = new DESCryptoServiceProvider();rn int num = Text.Length / 2;rn byte[] buffer = new byte[num];rn for (int i = 0; i < num; i++)rn rn int num3 = Convert.ToInt32(Text.Substring(i * 2, 2), 0x10);rn buffer[i] = (byte) num3;rn rn provider.Key = Encoding.ASCII.GetBytes(FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));rn provider.IV = Encoding.ASCII.GetBytes(FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));rn MemoryStream stream = new MemoryStream();rn CryptoStream stream2 = new CryptoStream(stream, provider.CreateDecryptor(), CryptoStreamMode.Write);rn stream2.Write(buffer, 0, buffer.Length);rn stream2.FlushFinalBlock();rn return Encoding.Default.GetString(stream.ToArray());rnrnrn
DES解密大文件出错
采用DES对文件进行加、<em>解密</em>,基本上50M以下的文件加<em>解密</em>都没<em>问题</em>,但超过50m的<em>加密</em>不报错,<em>解密</em>就报如下错误:rn[code=<em>java</em>]<em>java</em>x.crypto.IllegalBlockSizeException: Input length must be multiple of 16 when decrypting with padded cipher[/code]rnrn我<em>加密</em>后直接字节数组生成了新文件,没有转换为<em>字符串</em>。这个错误是指我的密钥必须是16的倍数吗?但是我改成16位的依然相同的错误,求解。
java的des加密(可行的)
网上整理的<em>java</em><em>版</em>的des<em>加密</em>,亲自试过,是可行的。
java实现DES加密解密算法
<em>java</em>实现DES<em>加密</em>、<em>解密</em><em>算法</em> 代码中有详细的注释,有不对或者写的不好的地方请大家指导
java中DES加密解密
/** * <em>java</em>中DES<em>加密</em>或<em>解密</em> */ import <em>java</em>.security.SecureRandom; import <em>java</em>x.crypto.Cipher; import <em>java</em>x.crypto.SecretKey; import <em>java</em>x.crypto.SecretKeyFactory; import <em>java</em>x.crypto.spec.DESKeySpe...
java实现对称加密AES和DES的加密解密
目前主流的<em>加密</em>方式有:1、对称<em>加密</em>:AES、DES      2、非对称<em>加密</em>:RSA、DSA。         本文主要讲解<em>java</em>实现调用AES/DES<em>加密</em><em>算法</em>包,调用过程最精要的就是下面两句话: Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding"); cipher.init(Cipher.ENCRYPT_MODE, key,
java实现的des算法加密解密
用<em>java</em>写的des<em>算法</em><em>加密</em>及<em>解密</em>过程
C# 与Java 通信DES 加密/解密
[b]C#[/b] EncryptString(&quot;42728ff2118430bdff5f9a189e0034ec&quot;,&quot;4;13pew*&quot;); //DES<em>加密</em> public string EncryptString(string sinputString, string Skey) { byte[] data = Encoding.UTF8.GetBytes(sinputSt...
Java工具类——DES加密解密工具 II
Java工具类——DES<em>加密</em>和<em>解密</em>工具 II
Java常用工具类封装——DES加密解密的工具类
如题,供参考。 import <em>java</em>.io.UnsupportedEncodingException; import <em>java</em>.security.InvalidKeyException; import <em>java</em>.security.NoSuchAlgorithmException; import <em>java</em>.security.SecureRandom; import <em>java</em>.security.s
Java 加密 解密 秘钥 DES BASE64
可自定义秘钥的Java<em>加密</em><em>解密</em>工具类(基于DES BASE64),主要用于请求参数<em>加密</em>
des前台js加密后台java解密
通过前台html引用js进行<em>加密</em>,在<em>java</em>后台进行<em>解密</em>,只要前后台密钥相同,就可以正确解析
Java DES加密解密简单总结
DES常用<em>加密</em>模式: 1. ECB模式:电子密本方式 2. CBC模式:密文分组链接方式 DES<em>加密</em>填充模式: 1. NoPadding:<em>算法</em>本身不填充, 2. PKCS5Padding:Java和C#默认的填充模式,对<em>加密</em>数据字节长度对8取余为r,如r大于0,则补8-r个字节,字节为8-r的值;如果r等于0,则补8个字节8 3. ISO10126Padding * DES<em>加密</em> /...
des加密算法(js+java)js加密 java解密
des<em>加密</em><em>算法</em>(js+<em>java</em>)<em>加密</em>与<em>解密</em>结果相同 包含三个文件 : des.js des.html ,用于实现前端脚本的<em>加密</em>与<em>解密</em> des.<em>java</em> 用于后台的<em>加密</em><em>解密</em>操作; 项目中正好用到,已经过验证,两个<em>加密</em><em>解密</em>结果相同,分享给大家!
Python 和 Java 进行 DES 加密解密
DES 为 Data Encryption Standard (数据<em>加密</em>标准)的缩写,是一种常见的对称<em>加密</em><em>算法</em>。有关对称<em>加密</em>与非对称<em>加密</em>的特点及其应用场景,本文就不描述了,读者可以自行 google 。本文说明如何使用 Java 和 Python 两种语言来实现 DES 的加<em>解密</em>。最近碰到的应用场景是这样的。我们需要对接一个系统 S,系统 S 已经对用户的身份进行了验证,新系统 N 也需要对用户的身
android(java) DES加密解密详解
刚来的时候公司网络数据传输都是用的明文,这两天说要<em>加密</em>传输就研究了一下des对称<em>加密</em>和rsa非对称<em>加密</em>两种<em>加密</em>方式,之前了解的MD5和base64对现有需求不太适合。base64安全性太低,MD5不可逆,一般作为盐值或存储个别<em>加密</em>参数结果,鉴于要<em>加密</em>所有参数,所以...;在此我重点说一下des对称<em>加密</em>,之后再说rsa<em>加密</em>,base64和MD5相对比较简单也比较常见,就不多说了。 des加
java和.net中的des加密解密
参考网上其他人的代码: <em>java</em><em>版</em>本: import <em>java</em>x.crypto.Cipher; import <em>java</em>x.crypto.SecretKey; import <em>java</em>x.crypto.SecretKeyFactory; import <em>java</em>x.crypto.spec.DESKeySpec; import <em>java</em>x.crypto.spec.IvParameterSpec; pu...
js可以des加密,php des解密
cryptoJS可以实现des<em>加密</em>,然后php可以des<em>解密</em>,我用的是DES ecb模式,密钥key用的是8位数。。。 cryptoJS可以网上下载,github上有。 php des加<em>解密</em>可以网上找类库下载。 反复测试后发现中文<em>加密</em>后js和php结果不一样,所有注意一下。...
DES 加密 解密源码 java 可运行
DES <em>加密</em> <em>解密</em>源码 <em>java</em><em>版</em> 可运行 很适用 注释清晰
关于DES加密问题
今天刚接触DES,有很多<em>问题</em>搞不懂,希望各位高手解答下:rn第一:DES的密钥是不是只能是8位?在VS2005中网上查了不少方法可是基本密钥都限死在8位,我的BOSS却提供了一个14位的密钥,另我很头痛,如果可以大于8位,希望热心网友贴出来,学习一下rn第二:DES生成的密码是不是固定的!我在VS大于8位的密码才会生成32位的密码,可是BOSS说他那边固定16位的,我又郁闷了,还是请高手解答。rn我用的是VS2005的方法!
DES算法加密出错
当你使用DES<em>算法</em>,<em>加密</em>,对数据进行<em>加密</em>时,进行页面跳转,如果后台出现Input length must be multiple of 8 when decrypting with padded cipher错误,说明你在传递过来的<em>加密</em>数据有部分内容丢失。有特殊字符传递不过去,这样的特殊字符后台会用空格代替,可以选用<em>java</em>的replaceAll进行替换。一般都在<em>加密</em>的‘+’号传递不了,需要替换。...
关于des加密问题
之前找了N多的代码都是跟c#<em>加密</em>出来的不一样。刚才找到一个只有<em>加密</em>。没有<em>解密</em>。!晕死。rnrn#include "stdafx.h"rn#define _WIN32_WINNT 0x0400rn#include rn#include rn#include rn#include rnusing namespace std;rnrn#pragma comment( lib, "Advapi32.lib" )rnrn//rn// for DESrn//rnrntypedef structrnrn BLOBHEADER header;rn DWORD cbKeySize;rn BYTE rgbKeyData[8];rnKeyBlob;rnrnLPSTR ConvertGBKToUtf8( LPSTR strGBK ) rnrn int len = MultiByteToWideChar(CP_ACP, 0, (LPSTR)strGBK, -1, NULL,0);rn unsigned short * wszUtf8 = new unsigned short[len+1];rn memset( wszUtf8, 0, len * 2 + 2 );rn MultiByteToWideChar( CP_ACP, 0, (LPSTR)strGBK, -1, (LPWSTR)wszUtf8, len );rn rn len = WideCharToMultiByte( CP_UTF8, 0, (LPCWSTR)wszUtf8, -1, NULL, 0, NULL, NULL );rn char *szUtf8=new char[len + 1];rn memset( szUtf8, 0, len + 1 );rn WideCharToMultiByte ( CP_UTF8, 0, (LPCWSTR)wszUtf8, -1, szUtf8, len, NULL,NULL );rn rn return szUtf8;rnrnrnvoid Base64Encode(BYTE *src, int src_len, BYTE *dst)rnrn rn int i = 0, j = 0;rn rn char base64_map[65] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";rn rn for (; i < src_len - src_len % 3; i += 3) rn rn dst[j++] = base64_map[(src[i] >> 2) & 0x3F];rn rn dst[j++] = base64_map[((src[i] << 4) & 0x30) + ((src[i + 1] >> 4) & 0xF)];rn rn dst[j++] = base64_map[((src[i + 1] << 2) & 0x3C) + ((src[i + 2] >> 6) & 0x3)];rn rn dst[j++] = base64_map[src[i + 2] & 0x3F];rn rn rn rn if (src_len % 3 == 1) rn rn dst[j++] = base64_map[(src[i] >> 2) & 0x3F];rn rn dst[j++] = base64_map[(src[i] << 4) & 0x30];rn rn dst[j++] = '=';rn rn dst[j++] = '=';rn rn else if (src_len % 3 == 2) rn rn dst[j++] = base64_map[(src[i] >> 2) & 0x3F];rn rn dst[j++] = base64_map[((src[i] << 4) & 0x30) + ((src[i + 1] >> 4) & 0xF)];rn rn dst[j++] = base64_map[(src[i + 1] << 2) & 0x3C];rn rn dst[j++] = '=';rn rn rn rn dst[j] = '\0';rn rnrnrnDWORD DesEncrypt(char* szEncrypt, char* szKey, BYTE* szOut, DWORD nOutLen, char* sz_kiv)rnrn char* sz_utf8_buff = ConvertGBKToUtf8( szEncrypt );rn rn DWORD dwEncrypt = strlen(sz_utf8_buff);rn rn if( szOut == NULL || \rn nOutLen < dwEncrypt + 8 - (dwEncrypt % 8) || \rn strlen( szKey ) < 8) rn return 0;rn memcpy(szOut, sz_utf8_buff, dwEncrypt);rn rn //rn // initrn //rnrn HCRYPTPROV hProv = NULL;rn HCRYPTKEY hSessionKey = NULL;rn BOOL bResult = TRUE;rnrn KeyBlob blob;rn blob.header.bType = PLAINTEXTKEYBLOB;rn blob.header.bVersion = CUR_BLOB_VERSION;rn blob.header.reserved = 0;rn blob.header.aiKeyAlg = CALG_DES;rn blob.cbKeySize = 8;rn memcpy(blob.rgbKeyData, szKey, 8);rnrn BYTE IV[9] = 0;rnrn memcpy( IV, sz_kiv, 8 );rnrn rn //rn // startrn //rnrn CryptAcquireContext(&hProv,NULL, MS_DEF_PROV, PROV_RSA_FULL,0); rn CryptImportKey(hProv, (BYTE*)&blob, sizeof(blob), 0, 0, &hSessionKey);rn CryptSetKeyParam(hSessionKey, KP_IV, (BYTE*)IV, 0);rn rn //rn // Dorn //rn ////<em>解密</em>rn //CryptDecrypt(hSessionKey,NULL,TRUE,0,(BYTE*)szOut,&dwEncrypt);rn ////<em>加密</em>rn CryptEncrypt(hSessionKey, NULL, TRUE, 0, (BYTE*)szOut, &dwEncrypt, nOutLen);rn //rn // Cleanrn //rnrn CryptDestroyKey(hSessionKey);rn CryptReleaseContext(hProv, 0);rn delete sz_utf8_buff;rnrn return dwEncrypt;rnrnrnchar* Encrypt( char* sz_encrypt, char* sz_key, char* sz_kiv )rnrn BYTE szOut[1024] = 0;rn rn //rn // do Des cryptrn //rn rn DWORD dwRet = DesEncrypt( sz_encrypt, sz_key, szOut, 1024,sz_kiv );rnrn //rn // do base64rn //rnrnrnrn int nLen = strlen( (char*)szOut );rn int nLenOut = nLen * 4 / 3;rn BYTE* szBase64 = new BYTE[nLenOut+1];rnrn memset( szBase64, 0, nLenOut + 1 );rnrn Base64Encode( szOut, nLen, szBase64 );rnrn rn return (char*)szBase64;rnrnrn//int main(int argc, char* argv[])rn//rn// rn// char* szResoult = Encrypt( "asd", "VavicApp","VavicApp" );rn// printf( "%s\n", szResoult);rn//rn// return 0;rn//
关于DES加密问题
DES有以下四种工作方式:rnDES的几种工作方式rn 第一种电子密本方式(ECB)rn 将明文分成n个64比特分组,如果明文长度不是64比特的倍数,则在明文末尾填充适当数目的规定符号。对明文组用给定的密钥分别进行<em>加密</em>,行密文C=(C0,C1,……,Cn-1)其中Ci=DES(K,xi),i=0,1,…..,n-1。rn 第二种密文分组链接方式(CBC)rn 在CBC方式下,每个明文组xi在<em>加密</em>前与先一组密文按位模二加后,再送到DES<em>加密</em>,CBC方式克服了ECB方式报内组重的缺点,但由于明文组<em>加密</em>前与一组密文有关,因此前一组密文的错误会传播到下一组。rn 第三种密文反馈方式(CFB),可用于序列密码rn 明文X=(x0,x1,……,xn-1),其中xi由t个比特组成0 rn 第四种输出反馈方式(OFB),可用于序列密码rn 与CFB唯一不同的是OFB是直接取DES输出的t个比特,而不是取密文的t个比特,其余都与CFB相同。但它取的是DES的输出,所以它克服了CFB的密文错误传播的缺点 rnrnrnrn请问是不是每一种工作方式得出的结果是不一样的?哪里有、CBC工作方式的VB模块或者VC的dll?
vc++实现des加密解密
用vc++6.0实现des的<em>加密</em>和<em>解密</em>功能
DES加密 解密 方法 MFC
DES<em>加密</em> <em>解密</em> 方法: DESr DESw 支持3DES<em>加密</em> <em>解密</em> 类中利用函数重载的方式 实现两种<em>加密</em>方式 <em>加密</em>后为16进制<em>字符串</em> 使用方法: 实例化一个对象 然后就可以随便用了。 如 DES<em>加密</em> <em>解密</em> CString sd,sd2; yxyDES2 des; sd=des.DESr("wan123456","710666260"); sd2=des.DESw(sd,"710666260"); 3DES<em>加密</em> <em>解密</em> CString sd,sd2; yxyDES2 des; sd=des.DESr("wan123456","710666260","123456"); sd2=des.DESw(sd,"710666260","123456");
C++ DES图像加密解密
基于C++的DES图像<em>加密</em>与<em>解密</em>,加入密钥之后得到<em>加密</em>后的图像,<em>解密</em>后无误差
C++ DES算法实现(加密解密
报告:https://github.com/c980129/DES/blob/master/DES%E7%AE%97%E6%B3%95%E7%9A%84%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1%E4%B8%8E%E5%AE%9E%E7%8E%B0.pdf 代码:https://github.com/c980129/DES
Des 对称加密算法 加密\解密实例
Des <em>加密</em>相关类介绍: SecureRandom  这个类是继承自<em>java</em>.util.Random 这个类 SecureRandom 这个类的构造器有三种,下面例举两种: SecureRandom()构造一个实现默认随机数<em>算法</em>的安全随机数生成器 (RNG)。 SecureRandom(byte[] seed)构造一个实现默认随机数<em>算法</em>的安全随机数生成器 (RNG)。 DESKeyS
C# 密码加密解密 (DES)
des密码<em>加密</em>与<em>解密</em><em>算法</em>!根据密匙<em>加密</em>与<em>解密</em>!,密匙自定义值
字符串、文件的DES加密解密
C#写的DES<em>加密</em>和<em>解密</em>代码,可以<em>加密</em><em>解密</em><em>字符串</em>,也可以对文件进行DES<em>加密</em>和<em>解密</em>。对文件的<em>加密</em>和<em>解密</em>实质采用字节流方式,很方便把<em>加密</em>的文件数据存入后台数据库。
有关DES加密解密java程序
des<em>加密</em>和<em>解密</em>的Java程序,很好用的程序,测试通过了
商业网站设计信息系统下载
针对企业进行电子交易管理的完整电子商务平台解决方案。网上电子商务系统,是以服务于企业的业务过程优化再造为目标,全面提升信息系统的技术内涵,实现“以产品为中心向以客户服务为中心”的战略转移,达到对外充分适应、快速反应,对内高效沟通、快速决策。 无论是做什么样的网站,都必须与客户沟通,向客户收资料。了解客户的需求,帮助他用户通过网站去提高企业和产品的知名度。 相关下载链接:[url=//download.csdn.net/download/Katherine987109/3348512?utm_source=bbsseo]//download.csdn.net/download/Katherine987109/3348512?utm_source=bbsseo[/url]
ptthon与matplotlib分析log下载
这个资源是pythonv3.3.2的安装包,matplotlib与其依赖包。除此之外,还有一个log文件,log.py用于示例如何使用python进行图形化的log分析。 相关下载链接:[url=//download.csdn.net/download/adf1230/6411337?utm_source=bbsseo]//download.csdn.net/download/adf1230/6411337?utm_source=bbsseo[/url]
Motorola_Mobile_Drivers_4.8.0_64bit下载
Motorola摩托罗拉 XT800 手机USB驱动 5.2.0版 For WinXP-32/WinXP-64/Vista-32/Vista-64/Win7-32/Win7-645.2.0版 相关下载链接:[url=//download.csdn.net/download/wangjing1014/8345575?utm_source=bbsseo]//download.csdn.net/download/wangjing1014/8345575?utm_source=bbsseo[/url]
相关热词 c#检测非法字符 c#双屏截图 c#中怎么关闭线程 c# 显示服务器上的图片 api嵌入窗口 c# c# 控制网页 c# encrypt c#微信网页版登录 c# login 居中 c# 考试软件
我们是很有底线的