iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C#实现简单的字符串加密
  • 643
分享到

C#实现简单的字符串加密

2024-04-02 19:04:59 643人浏览 八月长安
摘要

最近用到一些字符串加密,而.net中提供的加密算法中用起来比较复杂,便简单的封装了一下,方便日后使用。 public class Encrypt {

最近用到一些字符串加密,而.net中提供的加密算法中用起来比较复杂,便简单的封装了一下,方便日后使用。

    public class Encrypt
    {
        static Encoding encoding = Encoding.UTF8;

        public static string EncryptDES(string encryptString, string key)
        {
            var input = encoding.GetBytes(encryptString);
            var ouptputData = ProcessDES(input, key, true);
            var outputStr = Convert.ToBase64String(ouptputData);

            //base64编码中有不能作为文件名的'/'符号,这里把它替换一下,增强适用范围
            return outputStr.Replace('/', '@');
        }

        public static string DecryptDES(string decryptString, string key)
        {
            decryptString = decryptString.Replace('@', '/');

            var input = Convert.FromBase64String(decryptString);
            var data = ProcessDES(input, key, false);
            return encoding.GetString(data);
        }


        private static byte[] ProcessDES(byte[] data, string key, bool isEncrypt)
        {
            using (var dCSP = new DESCryptoServiceProvider())
            {
                var keyData = Md5(key);
                var rgbKey = new ArraySegment<byte>(keyData, 0, 8).ToArray();
                var rgbIV = new ArraySegment<byte>(keyData, 8, 8).ToArray();
                var dCSPKey = isEncrypt ? dCSP.CreateEncryptor(rgbKey, rgbIV) : dCSP.CreateDecryptor(rgbKey, rgbIV);

                using (var memory = new MemoryStream())
                using (var cStream = new CryptoStream(memory, dCSPKey, CryptoStreamMode.Write))
                {
                    cStream.Write(data, 0, data.Length);
                    cStream.FlushFinalBlock();
                    return memory.ToArray();
                }
            }
        }

        public static byte[] Md5(string str)
        {
            using (var md5 = MD5.Create())
            {
                return md5.ComputeHash(Encoding.UTF8.GetBytes(str));
            }
        }
    }

这个封装支持MD5和DES加密(有空再把RSA给补上),用于字符串加密,主要考虑的是方便使用,并没有追求最优效率。为方便使用做了如下两点优化

  • 密钥为字符串形式,没有长度限制

  • 加密后输出的字符串为Base64的改造形式,可以用于文件名

到此这篇关于C#实现字符串加密的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: C#实现简单的字符串加密

本文链接: https://www.lsjlt.com/news/152071.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C#实现简单的字符串加密
    最近用到一些字符串加密,而.net中提供的加密算法中用起来比较复杂,便简单的封装了一下,方便日后使用。 public class Encrypt { ...
    99+
    2024-04-02
  • python字符串简单加密怎么实现
    可以使用简单的凯撒密码来对字符串进行加密。以下是一个使用凯撒密码实现字符串加密和解密的示例代码: def encrypt(text,...
    99+
    2024-04-08
    python
  • Linux下实现 OpenSSL 简单加密与解密字符串
    场景shell脚本中存在明文密码客户要求禁止使用明文密码,密码做加密处理.方案在网上了解到了Linux OpenSSL加密解密工具可以指定各种加密算法为字符,文件做加密处理.加密的案例比较多,解密的寥寥无几.有兴趣的可以去查下中文...
    99+
    2023-06-05
  • Java 实现字符串SHA1加密方法
    目录Java 字符串SHA1加密导入类定义函数javaSHA1实现加密解密封装一个方法用于加密主函数测试Java 字符串SHA1加密 导入类 import java.securi...
    99+
    2024-04-02
  • VB.NET中怎么实现字符串加密解密
    这篇文章给大家介绍VB.NET中怎么实现字符串加密解密,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。VB.NET字符串加密解密的安全说明: 与 DES 相比,Rijndael(现在称为“高级加密标准”[AES])和“三...
    99+
    2023-06-17
  • python字符串怎么实现简单运算
    这篇文章将为大家详细讲解有关python字符串怎么实现简单运算,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。python的数据类型有哪些python的数据类型:1. 数字类型,包括int(整型)、long...
    99+
    2023-06-14
  • Python的字符串操作简单实例
    目录实例1:获取星期字符串实例2:获取月份字符串实例3:恺撒密码实例1:获取星期字符串 程序读入一个表示星期几的数字(1~7),输出对应的星期字符串名称。例如,输入 3,返回&ldq...
    99+
    2023-05-15
    Python字符串 Python字符串操作
  • Html和JS字符串中间加空格的简单实例
    目录背景1.Html中添加特殊转义字符(含空格)2.Js中添加空格扩展资料结尾背景 你有没有在项目开发当中遇到当你想要label两端对齐的时候,设置text-align:justif...
    99+
    2023-02-03
    js字符串里加空格 js字符串中间加空格 html加空格的方法
  • PHP 判断字符串中文和数字的简单实现
    PHP是一种被广泛应用的服务器端脚本语言,具有灵活、强大和易学的特点。在使用PHP进行字符串处理的过程中,判断字符串中是否包含中文和数字是一种常见需求。本文将介绍如何在PHP中实现简单...
    99+
    2024-03-08
    php 字符串 判断
  • c++字符串加密的方法是什么
    在C++中,字符串加密的方法可以使用各种加密算法,如AES、DES、RSA等。这些算法可以用来加密字符串,以确保数据的安全性和隐私性...
    99+
    2024-04-08
    c++
  • C#实现简单的文件加密与解密方式
    目录C#实现文件加密与解密C#进行url加密解密与jquery前端加密解密C#进行url加密与解密jquery总结C#实现文件加密与解密 代码: static class Handl...
    99+
    2023-01-28
    C#文件加密 C#文件解密 C#文件加密解密方式
  • C#怎么实现字符串包含字符串
    本文小编为大家详细介绍“C#怎么实现字符串包含字符串”,内容详细,步骤清晰,细节处理妥当,希望这篇“C#怎么实现字符串包含字符串”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。实例using System...
    99+
    2023-06-17
  • python字符串加密与解密
    符串进行加密与解密 设计应用程序时,为了防止一些敏感信息的泄露,通常需要对这些信息进行加密。 以用户的登录密码为例,如果密码以明文的形式存储在数据表中,很容易就会被人发现;相反,如果密码以密文的形式储存,即使别人从数据表中...
    99+
    2023-01-31
    字符串 python
  • C++实现LeetCode(151.翻转字符串中的单词)
    [LeetCode] 151.Reverse Words in a String 翻转字符串中的单词 Given an input string, reverse the strin...
    99+
    2024-04-02
  • 简单聊聊C#字符串构建利器StringBuilder
    目录前言简单示例源码探究构造入手无参构造带参数的构造构造小结核心方法转换成字符串对比java实现总结前言 在日常的开发中StringBuilder大家肯定都有用过,甚至用的很多。毕竟...
    99+
    2024-04-02
  • c# 实现简单的串口通讯
    目录开发环境:第一步第二步第三步本文提供一个用C#实现串口通讯实例,亲自编写,亲测可用! 开发环境: VS2008+.net FrameWork3.5(实际上2.0应该也可以) 第一...
    99+
    2024-04-02
  • Springboot基于BCrypt非对称加密字符串的实现
    目录1 : BCrypt简介2 : 集成BCrypt加密及验证2.1 : 引入POM2.2 : 工具类2.3 : 验证1 : BCrypt简介 在用户模块中,需要对于用户的密码进行保...
    99+
    2023-05-14
    Springboot BCrypt非对称加密字符串 Springboot 非对称加密字符串
  • Python截取字符串的简单方法实例
    目录前言模版示例获取字符串的前 5 个字符获取从第 3 个字符开始,长度为 4 的截取字符串获取字符串的最后一个字符获取字符串的末尾 5 个字符获取一个截取字符串,包括除了末尾 4 ...
    99+
    2024-04-02
  • c语言字符串加密的方法有哪些
    C语言字符串加密的方法有以下几种: 异或加密:将字符串中的每个字符与一个固定值进行异或运算,来改变字符的ASCII码值,从而实现加...
    99+
    2024-02-29
    C语言
  • c语言字符串加密的方法是什么
    一种常见的C语言字符串加密方法是使用简单的替换算法,也称为凯撒密码。该方法通过将字符串中的每个字符按照固定的偏移量进行替换,从而实现...
    99+
    2024-03-02
    c语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作