python C# DES 加密转换
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 加密转换的更多相关文章
- PYTHON实现DES加密及base64源码
要求是实现DES加密,解密,我是用python实现的,还是有挺多坑的,改bug就改了挺久,加密实现后,解密过程就比较轻松. 另外,附加base64编码源码 要求:输入秘钥为64位二进制数(有效位为56 ...
- pyDes库 实现python的des加密
下载及简介地址:https://twhiteman.netfirms.com/des.html 如需要在python中使用des加密,可以直接使用pyDes库加密,该库提供了CBC和ECB两种加密方式 ...
- python实现DES加密算法和3DES加密算法
pyDes.py ############################################################################# # Documentati ...
- python进行des加密解密,而且可以与JAVA进行互相加密解密
import binasciifrom pyDes import des, CBC, PAD_PKCS5import uuidimport time # pip install -i https:// ...
- Python实现基于DES加密源码的文本加密器
这是自行制作的一个DES文本加密工具 最终效果图: 本加密器支持UTF-8字符的加解密(包含中文),由于其中的编码方式与常用编码方式不同,加密结果与网上工具不同,但是能实现正常加解密. 最终目标: 目 ...
- 一个java的DES加密解密类转换成C#
一个java的des加密解密代码如下: //package com.visionsky.util; import java.security.*; //import java.util.regex.P ...
- paip.提升安全性----Des加密 java php python的实现总结
paip.提升安全性----Des加密 java php python的实现总结 /////////// uapi private static String decryptBy ...
- python和c#通用一致的des加密采用CBC和PKCS7
在python下可以下载pydes 下载地址为 http://pydes.sourceforge.net/ 在c#下实现des加密较为简单,如下: using System; using System ...
- python 和 C# DES加密
C# code: using System; using System.IO; using System.Security.Cryptography; using System.Text; names ...
- Python Des加密与解密实现软件注册码、机器码
原理 判断路径下是否存在识别文件,若存在就解密对比,若不存在就进入机器码注册: 获取系统C盘序列号作为识别ID,并添加随机数作为混淆,生成最终机器码. 将机器码发给软件开发者,开发者将机器码解密后,添 ...
随机推荐
- Java数组之冒泡排序【重点】
冒泡排序 冒泡排序是最为出名的排序算法之一,总共有八大排序! 冒泡的代码还是相当简单的,两层循环,外层冒泡轮数,里层依次比较. 我们看到嵌套循环,应该立马就可以得出这个算法的时间复杂度为O(n2). ...
- Java基础——(综合练习)生成5位验证码
package com.zhao.test; import java.util.Random; public class Test16 { /*需求: 定义方法实现随机产生一个5位的验证码 验证码格式 ...
- leecode 22 括号生成
22. 括号生成 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合. 示例 1: 输入:n = 3 输出:["((()))"," ...
- Flask的介绍、安装和使用
Flask的介绍 Flask其实就是Python-web中的一个框架,也就是说Flask是一个工具,提供了库和技术来让你建立一个web的应用程序.这个程序可以使一些web页面.博客.基于web的日历应 ...
- 逆向学习物联网-网关ESP8266-00课程目的
- developer mode
PS C:\Windows\system32> reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersio ...
- Flink Heartbeat of TaskManager和Heartbeat of ResourceManager timed out问题
最近上了个Flink任务,运行一段时间后就自动停止了,很是郁闷,查看最后一个chekpoint时间点,翻看时间日志 2019-12-13 07:25:24.566 flink [flink-akka. ...
- 从redis中取出数据并转成java对象
1.//数据存入redis中 redisTemplate.opsForValue().set(loginame, JSON.toJSONString(users),1000,TimeUnit.SECO ...
- docker登录mysql
一.查看mysql是否已启动 二.登录mysql 三.假如需要重启mysql 查看docker中运行的容器docker ps,再重新启动mysql,docker restart 9299415df7f ...
- 随机生成四则运算表达式【Unity】
根据自己项目需求调整代码中表达式的公共方法 using System.Collections; using System.Collections.Generic; using System; usin ...