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,并添加随机数作为混淆,生成最终机器码. 将机器码发给软件开发者,开发者将机器码解密后,添 ...
随机推荐
- hyperledger explorer 环境搭建
### nodejs 下载nodejs二进制包: wget https://nodejs.org/dist/v12.16.2/node-v12.16.2-linux-x64.tar.xz 解压xz数据 ...
- shell特殊符号
符号 含义 ; 命令分隔符 # 配置文件注释: root用户命令终端提示符 ~ 家目录 cd ~ - 上一次所在路径 cd - su - linux切换用户环境 ^ 非 [^abcd] $ ...
- SQL_SERVER 2000启动问题
SQL Server evaluation period has expired解决办法 问题现象: 本地计算机 上的 MSSQLSERVER 服务启动后又停止了.一些服务自动停止,如果它们没有什么可 ...
- 冷冻法快速还原Oracle数据库
1.重新装完系统之后,把D:\app\Administrator\oradata拷贝出来,app目录. 2.安装Oracle数据库,创建一个和oradata目录内同名的实例. 3.通过停止服务的方式关 ...
- VS不能生成moc_XXX文件的问题解决
环境:VS2010 + QT 4.8 问题:写好QT代码文件(XXX.h和XXX.cpp)后,发现不能像其它QT文件那样自动生成moc_XXX文件. 解决: 1.参考网文,将XXX.h文件的属性配置成 ...
- C++ 11 std::mem_fn
mem_fn 想到member function 成员函数 这还真就是用来调用成员函数的 普通的函数我们通过函数指针可以调用,但对于成员函数的调用稍微复杂一点,需要对象,也即this指针 因为成员函数 ...
- javaProject
import java.io.*; public class Print{ public static void main(String[] args) throws IOException { // ...
- Python常用技巧工具【不断更新】
一.**kwargs用法 # **kwargs用法#双星"**"放在字典的前面可以让你将字典的内容作为命名参数传递给函数.#字典的键是参数的名字,键的值作为参数的值传递给函数dic ...
- ABAP 动态内表 实例展示以及代码Demo
因根据查询条件展示的报表列数不一定一致,因此采用动态内表的方式进行处理 这里写了一个简单的Demo记录一下 效果如下图: 一般来说通过选择屏幕来控制列的,我这里就简单处理,直接对内表赋予相关值,包括相 ...
- Android中保存文件到内部存储器
1 public static void saveDataToPrivateFile(Context context, String data, int mode, String fileName) ...