import time
import base64
import pyDes
import binascii def DESEncrypt(desKey, target):
key = desKey[0:8]
IV =desKey[::-1][0:8]
btKey =key.encode(encoding='utf8')
btIV =IV.encode(encoding='utf8')
k = pyDes.des(btKey, mode=pyDes.CBC, IV=btIV, pad=None, padmode=pyDes.PAD_PKCS5)
en = k.encrypt(target)
return en def GetEncryptBase64(userid,pwd):
str_time=time.strftime("%Y%m%d")
char_list = list(str_time)
int_list=list(map(lambda x:int(x,10),char_list))
deskey=sum(int_list)
deskey*=int(str_time,10)
deskeystr=str(deskey).zfill(8)
userinfostr=userid+":"+pwd
userinfoEncryptBytes=DESEncrypt(deskeystr,userinfostr.encode(encoding='utf8'))
userinfoEncryptBase64 = base64.b64encode(userinfoEncryptBytes).decode('ascii')
    return userinfoEncryptBase64

result=GetEncryptBase64("userid","userpwd")
print("result={}".format(result)) '''
byte[] DESEncrypt(string desKey, byte[] target)
{
if (desKey.Length < 8) throw new Exception("parameter desKey length should equal greater than 8"); var key = desKey.Substring(0, 8);
var IV = string.Join("", desKey.Reverse()).Substring(0, 8);
byte[] btKey = Encoding.UTF8.GetBytes(key);
byte[] btIV = Encoding.UTF8.GetBytes(IV);
DESCryptoServiceProvider des = new DESCryptoServiceProvider(); using (MemoryStream ms = new MemoryStream())
{
using (CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(btKey, btIV), CryptoStreamMode.Write))
{
cs.Write(target, 0, target.Length);
cs.FlushFinalBlock();
}
return ms.ToArray();
}
} public string GetEncryptBase64(string userid, string pwd)
{
Int64 deskey = DateTime.Now.ToString("yyyyMMdd").Sum(c => Convert.ToInt32(c.ToString()));
deskey *= Convert.ToInt32(DateTime.Now.ToString("yyyyMMdd"));
string deskeystr = deskey.ToString().PadLeft(8, '0'); string userinfostr = userid + ":" + pwd;
var userinfoEncryptBytes = DESEncrypt(deskeystr, Encoding.UTF8.GetBytes(userinfostr));
var userinfoEncryptBase64 = Convert.ToBase64String(userinfoEncryptBytes);
return userinfoEncryptBase64;
}
'''

python C# DES 加密转换的更多相关文章

  1. PYTHON实现DES加密及base64源码

    要求是实现DES加密,解密,我是用python实现的,还是有挺多坑的,改bug就改了挺久,加密实现后,解密过程就比较轻松. 另外,附加base64编码源码 要求:输入秘钥为64位二进制数(有效位为56 ...

  2. pyDes库 实现python的des加密

    下载及简介地址:https://twhiteman.netfirms.com/des.html 如需要在python中使用des加密,可以直接使用pyDes库加密,该库提供了CBC和ECB两种加密方式 ...

  3. python实现DES加密算法和3DES加密算法

    pyDes.py ############################################################################# # Documentati ...

  4. python进行des加密解密,而且可以与JAVA进行互相加密解密

    import binasciifrom pyDes import des, CBC, PAD_PKCS5import uuidimport time # pip install -i https:// ...

  5. Python实现基于DES加密源码的文本加密器

    这是自行制作的一个DES文本加密工具 最终效果图: 本加密器支持UTF-8字符的加解密(包含中文),由于其中的编码方式与常用编码方式不同,加密结果与网上工具不同,但是能实现正常加解密. 最终目标: 目 ...

  6. 一个java的DES加密解密类转换成C#

    一个java的des加密解密代码如下: //package com.visionsky.util; import java.security.*; //import java.util.regex.P ...

  7. paip.提升安全性----Des加密 java php python的实现总结

    paip.提升安全性----Des加密 java php python的实现总结 ///////////    uapi         private static String decryptBy ...

  8. python和c#通用一致的des加密采用CBC和PKCS7

    在python下可以下载pydes 下载地址为 http://pydes.sourceforge.net/ 在c#下实现des加密较为简单,如下: using System; using System ...

  9. python 和 C# DES加密

    C# code: using System; using System.IO; using System.Security.Cryptography; using System.Text; names ...

  10. Python Des加密与解密实现软件注册码、机器码

    原理 判断路径下是否存在识别文件,若存在就解密对比,若不存在就进入机器码注册: 获取系统C盘序列号作为识别ID,并添加随机数作为混淆,生成最终机器码. 将机器码发给软件开发者,开发者将机器码解密后,添 ...

随机推荐

  1. wpf TreeView 数据绑定

    <Window x:Class="TsyCreateProjectContent.Window1" xmlns="http://schemas.microsoft. ...

  2. ubuntu iptables 做为路由转发

    实现功能,本地服务器的号段的192.168.8.0/24,而做为路由器的机器有2个ip,192.168.8.x和另一个ip,而另一个ip可以访问 192.168.2.0/24号段, 为了让其它192. ...

  3. 数字图像处理之直方图处理——a cute dog huang

    关于图像处理的知识,确实很棒,在此感谢:https://blog.csdn.net/mary_0830/article/details/89003488 直方图处理概念灰度级范围为[0,L-1]的数字 ...

  4. gorm去重查询 iris框架

    写练习 demo 时遇到需要进行去重查询,gorm没有db.distinct()的写法 // 数据库的表字段 type Pro_location_relation struct { Id int64 ...

  5. vvvvvv异步组件儿

    const AsyncCommonItem = Vue.defineAsyncComponent(()=>{ return new Promise((resolve,reject)=>{ ...

  6. mac sourcetree required password

    coding   c85Ao 解决办法,用http拉取,使用命令行clone 每次push需要密码解决方法 sourcetree 不停的让输入密码,报 password required1.在终端(t ...

  7. Dapper.FastCRUD与Dapper中的CustomPropertyTypeMap冲突

    在使用Dapper.NET时,由于生成的实体的属性与数据库表字段不同(如表字段叫USER_NAME,生成的对应的实体属性则为UserName). 这时需要使用Dapper中的CustomPropert ...

  8. Go语言互斥锁(sync.Mutex)和读写互斥锁(sync.RWMutex)

    暴力锁 package main import ( "fmt" "sync" "time" ) /* Go语言包中的 sync 包提供了两种 ...

  9. PAT-basic-1024 科学计数法 java

    一.题目 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [+-][1-9].[0-9]+E[+-][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该 ...

  10. 浅谈前端自动化构建(Grunt、gulp。webpack)

    前言 现在的前端开发已经不再仅仅只是静态网页的开发了,日新月异的前端技术已经让前端代码的逻辑和交互效果越来越复杂,更加的不易于管理,模块化开发和预处理框架把项目分成若干个小模块,增加了最后发布的困难, ...