最近学习python,发现python对于字符的操作真的是非常的麻烦,因为单位项目中用java实现过这种base64的编码,现在需要用python来实现。
代码如下,我自己都不知道是怎么折腾出来了,基本上可以用了。
#!/usr/bin/env python
#coding:gbk
from base64 import b64encode,b64decode
import string
def encode(unicodeString,key):
strorg=unicodeString.encode('utf-8')
strlength=len(strorg)
baselength=len(key)
hh=[]
for i in range(strlength):
hh.append(chr((ord(strorg[i])+ord(key[i % baselength]))%256))
return b64encode(''.join(hh))
def decode(orig,key):
strorg = b64decode(orig.encode('utf-8'))
strlength=len(strorg)
keylength=len(key)
mystr=' '*strlength
hh=[]
for i in range(strlength):
hh.append((ord(strorg[i])-ord(key[i%keylength]))%256)
return ''.join(chr(i) for i in hh).decode('utf-8')
if __name__=='__main__':
print encode(u'中华人名工','kioe257ds')
print decode(u'TyEcSr/DGx4tUPn8Suna','kioe257ds')
分享到:
相关推荐
Base64编码后的字符串长度通常是原数据长度的1.33倍,因为每24位的原始数据会被转换为4个6位的Base64字符。 在微信小程序中实现AES ECB Base64加密解密,你需要以下步骤: 1. 引入加密库:微信小程序提供了`wx....
总结,通过JavaScript进行MD5、AES和Base64的加密解密是确保Web应用数据安全的重要手段。MD5用于数据校验,AES提供强加密,而Base64则方便在网络中传输二进制数据。了解并熟练运用这些加密方法,有助于开发更安全、...
Base64安全性低?...Base64加密后的字符串在URL中不安全,想去掉特殊符号?这里支持。 想在解密失败返回统一字符?这里支持。告诉我还有什么是你想要的。这里都有,如果好用,不介意的请在下面评论一番,谢谢
解密时,我们先对Base64编码的字符串进行解码,然后使用相同的密钥进行解密。 请注意,对于生产环境,你需要妥善管理密钥,避免明文存储,并考虑使用更安全的密钥存储和管理机制,如KeyStore。 总结来说,"java_...
// 假设这是Base64编码的字符串 byte[] decodedBytes = Base64.getDecoder().decode(base64String); String plainText = new String(decodedBytes); // 将解码后的字节转换回字符串 System.out.println("明文: ...
它将每3个字节的数据转换为4个字符的文本字符串。在微信小程序中,Base64通常用于将二进制数据(如图片、音频)转化为可以在网络上直接传输的文本格式。`utils`文件夹可能包含一个名为`base64.js`的工具类,提供了...
在这个项目中,"Base64And3Des(C++3Des加密解密结合Base64加密解密).rar" 提供了一个C++实现,用于结合3DES(Triple Data Encryption Standard)加密算法与Base64编码进行数据的加解密。下面我们将详细探讨3DES和...
### 字符串加密解密——DES加密解密详解 #### 一、概述 在现代信息技术领域,数据安全显得尤为重要。为了保护数据不被未授权访问或窃取,加密技术成为了必不可少的一部分。其中,**DES(Data Encryption Standard...
以上代码展示了如何使用CryptoJS库进行AES加密和解密,加密后的结果是一个包含Base64编码的字符串,解密时需要使用相同的密钥。 总的来说,JavaScript中的Base64编码是数据传输的基础工具,而配合加密算法,如AES,...
' 将加密后的字节转换为Base64字符串 base64Text = Convert.ToBase64String(ms.ToArray()) ' 解密 Dim decryptor As ICryptoTransform = aes.CreateDecryptor(aes.Key, aes.IV) ms = New MemoryStream(Convert....
其基本思想是,利用ASCII字符集中的64个字符(包括大写字母A-Z,小写字母a-z,数字0-9,以及+和/两个符号)来表示每6位的二进制数据,从而将原始数据转换为可打印的文本字符串。这种编码方式特别适合于在网络上传输...
在VB(Visual Basic)编程中,字符串加解密是一项重要的技术,主要用于保护数据的安全性,尤其是在传输或存储敏感信息时。VB字符串加解密函数可以帮助我们实现这一目标,确保所有字符都能得到有效处理。下面我们将...
在接收端,先将接收到的Base64字符串解码回二进制数据,再用相同的AES密钥进行解密,还原出原始信息。 在提供的"utils"文件中,可能包含了实现这些功能的工具函数。这些函数可能封装了Base64和AES的加密/解密逻辑,...
加密后字符串:String newKey=(new BASE64Encoder()).encodeBuffer(bt); 解密代码: 加密后的字符串:String newkey="*****"; byte[] bt = (new BASE64Decoder()).decodeBuffer(key); 解密后的字符串: String key=...
为了保护这些信息,我们需要对其进行加密和解密操作。在这个主题中,我们将深入探讨VB中字符串加密和解密的基本概念、方法以及示例。 字符串加密是将明文字符串转化为无法直接读取的密文过程,而解密则是将密文还原...
结合Base64编码,我们可以在加密后将密文转换为Base64字符串,便于存储和传输。解密前再将其还原为原始字节数组,然后进行解密操作。 ```csharp string encryptedBase64 = Convert.ToBase64String(encryptedBytes);...
为了封装这些功能,你可以创建一个自定义的加密解密字符串函数类,如`CryptoManager`,包含`encrypt()`和`decrypt()`方法。这个类可以处理不同的加密算法,并提供统一的接口。类中的关键部分可能包括选择合适的加密...
在"C#字符串加解密源码"中,描述提到了"可以输入key值加密",这通常指的是使用密钥加密算法,如AES(高级加密标准)或者DES(数据加密标准)。这些算法需要一个密钥作为参数,密钥的强度直接影响了加密的安全性。AES...
Base64是一种用于在网络上传输二进制数据的编码方式,它将任意可打印字符转换为一个可读的ASCII字符串。Base64使用64个字符的字符集,包括大小写字母、数字和两个特殊符号,将每3个字节的二进制数据转换成4个字节的...
本文将详细讨论如何在C#中创建一个字符串加解密的通用类,以及实现加密和解密字符串的基本原理。 首先,我们需要理解加密的基本概念。加密是通过使用特定算法(称为加密算法)将明文(可读信息)转换为密文(看似...