返回顶部
首页 > 资讯 > 后端开发 > Python >3des算法源码
  • 803
分享到

3des算法源码

算法源码des 2023-01-31 01:01:05 803人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

using System;using System.Text;using System.io;using System.Security.Cryptography;class Class1{ static void Main() {  Co

using System;
using System.Text;
using System.io;
using System.Security.Cryptography;

class Class1
{
static void Main()
{
  Console.WriteLine("Encrypt String...");
  txTKEy = "tkGGRmBErvc=";
  btnKeyGen();
  Console.WriteLine("Encrypt Key :{0}",txtKey);
  txtIV = "Kl7ZgtM1dvQ=";
  btnIVGen();
  Console.WriteLine("Encrypt IV :{0}",txtIV);
  Console.WriteLine();

  string txtEncrypted = EncryptString("1111");
  Console.WriteLine("Encrypt String : {0}",txtEncrypted);

  string txtOriginal = DecryptString(txtEncrypted);
  Console.WriteLine("Decrypt String : {0}",txtOriginal);
}

private static SymmetricAlGorithm mCSP;
private static string txtKey;
private static string txtIV;

private static void btnKeyGen()
{
  mCSP = SetEnc();

  byte[] byt2 = Convert.FromBase64String(txtKey);

  mCSP.Key = byt2;
}

private static void btnIVGen()
{
  byte[] byt2 = Convert.FromBase64String(txtIV);

  mCSP.IV = byt2;
}

private static string EncryptString(string Value)
{
  ICryptoTransfORM ct;
  MemoryStream ms;
  CryptoStream cs;
  byte[] byt;

  ct = mCSP.CreateEncryptor(mCSP.Key, mCSP.IV);

  byt = Encoding.UTF8.GetBytes(Value);

  ms = new MemoryStream();
  cs = new CryptoStream(ms, ct, CryptoStreamMode.Write);
  cs.Write(byt, 0, byt.Length);
  cs.FlushFinalBlock();

  cs.Close();

  return Convert.ToBase64String(ms.ToArray());
}

private static string DecryptString(string Value)
{
  ICryptoTransform ct;
  MemoryStream ms;
  CryptoStream cs;
  byte[] byt;

  ct = mCSP.CreateDecryptor(mCSP.Key, mCSP.IV);

  byt = Convert.FromBase64String(Value);

  ms = new MemoryStream();
  cs = new CryptoStream(ms, ct, CryptoStreamMode.Write);
  cs.Write(byt, 0, byt.Length);
  cs.FlushFinalBlock();

  cs.Close();

  return Encoding.UTF8.GetString(ms.ToArray());
}

private static SymmetricAlgorithm SetEnc()
{
  return new DESCryptoServiceProvider();
}
}


3DES(即Triple DES)是DES向AES过渡的加密算法(1999年,NIST将3-DES指定为过渡的加密标准),是DES的一个更安全的变形。它以DES为基本模块,通过组合分组方法设计出分组加密算法,其具体实现如下:设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,P代表明文,C代表密表,这样,

3DES加密过程为:C=Ek3(Dk2(Ek1(P)))

3DES解密过程为:P=Dk1((EK2(Dk3(C)))

具体的加/解密过程如图2所示。K1、K2、K3决定了算法的安全性,若三个密钥互不相同,本质上就相当于用一个长为168位的密钥进行加密。多年来,它在对付强力***时是比较安全的。若数据对安全性要求不那么高,K1可以等于K3。在这种情况下,密钥的有效长度为112位。

--结束END--

本文标题: 3des算法源码

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

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

猜你喜欢
  • 3des算法源码
    using System;using System.Text;using System.IO;using System.Security.Cryptography;class Class1{ static void Main() {  Co...
    99+
    2023-01-31
    算法 源码 des
  • react diff算法源码解析
    目录单节点Diff reconcileSingleElement多节点Diff reconcileChildrenArray如何判断节点移动了? 总结 React中Diff算法又称为...
    99+
    2024-04-02
  • 基于EEE3模式的3DES算法加密和解密实现
    3DES(Triple Data Encryption Standard)算法是对DES算法的增强版本,它使用三次DES算法来实现更...
    99+
    2023-09-13
    EEE3
  • DES&3DES算法原理及C#和JS实现的方法是什么
    这篇文章主要介绍“DES&3DES算法原理及C#和JS实现的方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“DES&3DES算法原理及C#和JS实现的方法是什么”文章能帮助大...
    99+
    2023-07-05
  • 详解DES&3DES算法的原理以及C#和JS的实现
    目录一、简介1、DES 简介2、3DES 简介二、C# 代码实现1、DES2、3DES三、js 语言实现 1、DES2、3DES一、简介 1、DES 简介 DES 全称为 ...
    99+
    2023-03-19
    C# DES算法 JS DES算法 DES算法实现
  • 蝴蝶优化算法及实现源码
    目录算法简介香味具体算法参考文献群智能算法学习笔记笔记内容和仿真代码可能会不断改动如有不当之处,欢迎指正 算法简介 蝴蝶优化算法(butterfly optimization alg...
    99+
    2024-04-02
  • Java经典排序算法源码分析
    本篇内容主要讲解“Java经典排序算法源码分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java经典排序算法源码分析”吧!1.1 快速排序快速排序,一种排序很快的方法,使用分治思想,就是说快...
    99+
    2023-07-05
  • 算命php源码全开源搭建
      算命php源码是一个编码器/解码器,带有可选的替换密码,使用《易经》中的卦象。它将卦象64值映射到易经卦。这个程序生成易经读物。卦象是随机的,其概率与传统的“三枚硬币”方法相对应。断线和不断线出现的可能性相等。线条有四分之一的几率在第一...
    99+
    2023-09-06
    php 开发语言
  • LRU算法及Apache LRUMap源码实例解析
    目录1. 什么是LRU1.1 自定义实现LRU的要求1.2 Apache LRUMap示例1.2.1 pom依赖1.2.2 demo2. 源码解析2.1 设计2.2 数据结构2.3 ...
    99+
    2024-04-02
  • 如何解析hanlp源码中文分词算法
    如何解析hanlp源码中文分词算法,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。  解析hanlp源码中文分词算法。词图指的是...
    99+
    2024-04-02
  • java LRU算法及Apache LRUMap源码实例分析
    本篇内容主要讲解“java LRU算法及Apache LRUMap源码实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java LRU算法及Apache LRUMap源...
    99+
    2023-06-21
  • Java Zookeeper分布式分片算法源码分析
    这篇文章主要介绍了Java Zookeeper分布式分片算法源码分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java Zookeeper分布式分片算法源码分析文章都会有所收获,下面我们...
    99+
    2023-07-05
  • 最新iPad双协议源码,带MMTIS,0305算法
     可实现微信90%功能;支持62数据登录、A16登录。扫码登录、修改个人资料,修改密码,收发朋友圈、查看朋友圈、微信建群、微信拉人进群、微信公众号阅读、微信消息收发、微信附近的人定位、微信添加好友、微信红包接收、微信防撤回、分享小...
    99+
    2023-06-03
  • python实现AES算法及AES-CFB8加解密源码
    目录Python实现AES算法生成轮密钥加密解密完整代码如下测试测试程序Python实现AES-CFB8加解密Python实现AES算法 密码学课程老师留的作业,我觉得用python...
    99+
    2024-04-02
  • 【数据结构与算法】堆的实现(附源码)
      目录 一.堆的概念及结构 二.接口实现 A.初始化  Heapinit   销毁 Heapdestroy B.插入 Heappush 向上调整  AdjustUp 1.Heappush 2.AdjustUp C.删除 Heappop...
    99+
    2023-09-17
    java 算法 数据结构 c语言
  • Python:实现A*搜索算法(含完整源代码)
    Python:实现A*搜索算法(含完整源代码) A*(也称为A星)搜索算法是一种常用的寻路算法。该算法在解决路径规划问题时表现出色,因为它能够找到最短路径并避免遍历那些不必要的节点。本文将介绍如何使用...
    99+
    2023-10-18
    python
  • Android开发数据结构算法ArrayList源码详解
    目录简介ArrayList源码讲解初始化扩容增加元素一个元素一堆元素删除元素一个元素一堆元素修改元素查询元素总结ArrayList优点ArrayList的缺点简介 ArrayList...
    99+
    2022-11-13
    Android数据结构算法ArrayList Android ArrayList
  • ShardingSphere数据分片算法及测试源码分析
    这篇文章主要介绍“ShardingSphere数据分片算法及测试源码分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“ShardingSphere数据分片算法及测试源码分析”文章能帮助大家解决问题。...
    99+
    2023-07-05
  • gitee源码一样算盗窃吗
    近年来,开源社区的发展势头越来越强劲,越来越多的开发者开始将自己的代码上传至各大代码托管平台,如 GitHub、Gitee等,供其他开发者学习、使用和改进。然而,其中一个问题却随着开源社区的壮大而时常出现:gitee源码算不算盗窃?为了更好...
    99+
    2023-10-22
  • 周易测算网站H5源码在线起名运势测算网站系统源码
    周易测算网站H5源码,在线起名网站源码、运势测算网站系统源码。没有测试支付,因为后台对接的是Z支付。 附带有视频搭建教程,有兴趣的可以研究研究看能不能加个彩虹易支付的接口。 下载https://download.csdn.net/downl...
    99+
    2023-09-03
    php apache mysql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作