using System;
using System.Security.Principal;
using System.Security.Permissions;
using System.Security.Cryptography;

namespace Demo
{
    class MainClass
    {
        /// <summary>
        /// DESCryptoServiceProvider
        /// </summary>
        public static void DESCryptoDemo ()
        {
            string message = "This message is security!";
            string strEncryp, strDecryp;

            DESCryptoServiceProvider des = new DESCryptoServiceProvider ();
            System.Text.Encoding encoding = new System.Text.UTF8Encoding ();

            byte[] key = encoding.GetBytes ("1a345689");
            , , , , , , ,  };
            ICryptoTransform encryptor = des.CreateEncryptor (key, iv);
            ICryptoTransform decryptor = des.CreateDecryptor (key, iv);
            //all above 4 lines can be TiHuan as below
            des.GenerateKey ();
            des.GenerateIV ();
            encryptor = des.CreateEncryptor ();
            decryptor = des.CreateDecryptor ();
            {
                byte[] byteMessage = encoding.GetBytes (message);
                , byteMessage.Length);
                strEncryp = Convert.ToBase64String (byteEncrypto);
            }
            {
                byte[] byteEncryto2 = Convert.FromBase64String (strEncryp);
                , byteEncryto2.Length);
                strDecryp = encoding.GetString (byteDecrypto);
            }
            Console.WriteLine ("Message:" + message);
            Console.WriteLine ("Encrypted:" + strEncryp);
            Console.WriteLine ("Decrypted:" + strDecryp);
            Console.ReadKey ();
        }

        public static void Invoke (Action action)
        {
            try {
                action ();
            } catch (Exception ex) {
                Console.WriteLine (ex.Message);
            }
        }

        public static void Main (string[] args)
        {
            DESCryptoDemo ();
            Invoke (() => TestMethod1 ());
            Invoke (() => TestMethod2 ());
            Invoke (() => TestMethod3 ());
            Console.ReadKey ();
        }

        [PrincipalPermission (SecurityAction.Demand, Name = "Administrator")]
        public static void TestMethod1 ()
        {
            Console.WriteLine ("TestMethod1 successfully Executed!");
        }

        [PrincipalPermission (SecurityAction.Demand, Role = "Administrators")]
        public static void TestMethod2 ()
        {
            Console.WriteLine ("TestMethod2 successfully Executed!");
        }

        [PrincipalPermission (SecurityAction.Demand, Role = "Guests")]
        public static void TestMethod3 ()
        {
            Console.WriteLine ("TestMethod3 successfully Executed!");
        }
    }
}

DES对称性加密的更多相关文章

  1. .NET和JAVA同等加密方法,MD5和DES对称加密记录

    C#版: using System; using System.Security.Cryptography; using System.Text; namespace ConsoleApplicati ...

  2. Java和.NET使用DES对称加密的区别

    Java和.NET的系统类库里都有封装DES对称加密的实现方式,但是对外暴露的接口却各不相同,甚至有时会让自己难以解决其中的问题,比如Java加密后的结果在.NET中解密不出来等,由于最近项目有跨Ja ...

  3. 基于DES算法加密的防撞库密码系统项目总结

    项目内容:基于DES算法加密的防撞库密码系统 小组名:zqhzkzkj 目标:1.对用户输入的8位字符进行DES加密,要求用户输入8位密钥 2.对于不同的网站,不同的用户名生成不同的密码 小组成员:周 ...

  4. 使用openssl库实现des,3des加密

    原文地址: 使用openssl库实现des,3des加密 主要是调整了一下格式,以及一些变量的类型,以解决在VC2008下无法编译通过的问题. #include <stdio.h> #in ...

  5. PHP使用DES进行加密解密

    DES是一种对称加密算法,也就是通过密文和合法的密钥能够将明文还原出来,在程序开发过程中有些 接口可能需要获取原始数据,而发送的数据又比较敏感(比如用户的密码等信息),这时可以选择DES加密算法,DE ...

  6. .NET中的DES对称加密

    DES是一种对称加密(Data Encryption Standard)算法,于1977年得到美国政府的正式许可,是一种用56位密钥来加密64位数据的方法.一般密码长度为8个字节,其中56位加密密钥, ...

  7. RSA+DES动态加密

    RSA可以用于加密,其加密强度很高,被人攻克的可能性极小.但是其加密速度很慢,如果对一段长数据进行加密是不现实的.因为无论加密还是解密都需要很长时间.所以通常是先用对称加密算法(DES, AES等)对 ...

  8. 备忘DES带向量的加密和解密与DES简单加密与解密

    package com.ego.util; import java.security.Key; import java.security.SecureRandom; import java.secur ...

  9. 备忘DES简单加密与解密

    package com.ego.util; import java.io.IOException; import java.security.SecureRandom; import javax.cr ...

随机推荐

  1. markdown语法练习

    Markdown练习 这篇文章 主要用于练习markdown各种基本语法. 这篇文章 主要用于练习markdown各种基本语法. 1.标题设置 1.通过在文字下方添加"="或者&q ...

  2. 【java开发】面向对象初步认识与基础概念讲解

    简单的把前面的java基础知识讲了,接下来就开始面向对象的旅程了. 对象(Object):简而言之,世界是由对象组成的,一切可见的事物吧 类(class):说白了就是把具有相同的一些特征或是属性归为一 ...

  3. SQL作业的操作全

    --定义创建作业 转自http://hi.baidu.com/procedure/blog/item/7f959fb10d76f95d092302dd.html DECLARE @jobid uniq ...

  4. 初试 Matlab 之去除水印

    这几天很痛苦地去学习了下用 Matlab 来处理图像,其实那些算法我觉得还不算很难理解,可是 Matlab 这种反人类的语法(可能对于我来说是这样吧,毕竟熟悉了 C++ / Java 的语法一时间很难 ...

  5. atitit.ajax 最佳实践跟框架选型 o99

    atitit.ajax 最佳实践跟框架选型 1. 选型框架dwr/dwr3 跟jq 1 2. DWR方便的地方分为两个地方. 1 3. dwr 优点: 1 4. 缺点: 2 5. 根jq的区别 2 1 ...

  6. 【Android】Activity生命周期(亲测)

    测试手机:Nexus 5   系统:4.4 一.测试 测试代码: package com.example.androidalarm; import android.app.Activity; impo ...

  7. 【浏览器渲染原理】渲染树构建之渲染树和DOM树的关系(转载 学习中。。。)

    在DOM树构建的同时,浏览器会构建渲染树(render tree).渲染树的节点(渲染器),在Gecko中称为frame,而在webkit中称为renderer.渲染器是在文档解析和创建DOM节点后创 ...

  8. jQuery 请指出&#39;$&#39;和&#39;$.fn&#39;的区别?或者说出&#39;$.fn&#39;的用途。

    http://hi.baidu.com/chy0806css/item/acc52425099c30ff50fd87eb Jquery为开发插件提供了两个方法,分别是: $.extend(obj);$ ...

  9. [转]Oracle 10g及pro*c相关问题及解决方法(转)

    Oracle 10g及pro*c相关问题及解决方法 2008年08月21日 星期四 上午 11:21 最近一直在进行ORACLE 10g和PRO*C的学习. 其中遇到了不少的问题: 现列于此,已备他用 ...

  10. PSP编程初探 Hello World

    自己有一台PSP2000,玩了这么长时间的游戏,所以打算去探究一下PSP这个平台的程序的构建方式. 在网上搜了很多资料,感觉能用上的不多,毕竟这太小众了,通过自己的探索,总结了一下. 先搭建MinGW ...