
def encryption():
str_raw = input("请输入明文:")
k = int(input("请输入位移值:"))
str_change = str_rawlower()
str_list = list(str_change)
str_list_encry = str_list
i = 0
while i < len(str_list):
if ord(str_list[i]) < 123-k:
str_list_encry[i] = chr(ord(str_list[i]) + k)
else:
print ("解密结果为:"+""join(str_list_decry))
while True:
print (u"1 加密")
print(u"2 解密")
choice = input("请选择:")
if choice == "1": encryption()
elif choice == "2": decryption()
else: print (u"您的输入有误!")
package comcubelimailutil;
import javaxcryptoCipher;
import javaxcryptoKeyGenerator;
import javaxcryptoSecretKey;/
加密解密类
/
public class Eryptogram
{
private static String Algorithm ="DES";
private String key="CB7A92E3D3491964";
//定义 加密算法,可用 DES,DESede,Blowfish
static boolean debug = false ;
/
构造子注解
/
public Eryptogram ()
{
} /
生成密钥
@return byte[] 返回生成的密钥
@throws exception 扔出异常
/
public static byte [] getSecretKey () throws Exception
{
KeyGenerator keygen = KeyGeneratorgetInstance (Algorithm );
SecretKey deskey = keygengenerateKey ();
Systemoutprintln ("生成密钥:"+bytesToHexString (deskeygetEncoded ()));
if (debug ) Systemoutprintln ("生成密钥:"+bytesToHexString (deskeygetEncoded ()));
return deskeygetEncoded ();
} /
将指定的数据根据提供的密钥进行加密
@param input 需要加密的数据
@param key 密钥
@return byte[] 加密后的数据
@throws Exception
/
public static byte [] encryptData (byte [] input ,byte [] key ) throws Exception
{
SecretKey deskey = new javaxcryptospecSecretKeySpec (key ,Algorithm );
if (debug )
{
Systemoutprintln ("加密前的二进串:"+byte2hex (input ));
Systemoutprintln ("加密前的字符串:"+new String (input ));
} Cipher c1 = CiphergetInstance (Algorithm );
c1init (CipherENCRYPT_MODE ,deskey );
byte [] cipherByte =c1doFinal (input );
if (debug ) Systemoutprintln ("加密后的二进串:"+byte2hex (cipherByte ));
return cipherByte ;
} /
将给定的已加密的数据通过指定的密钥进行解密
@param input 待解密的数据
@param key 密钥
@return byte[] 解密后的数据
@throws Exception
/
public static byte [] decryptData (byte [] input ,byte [] key ) throws Exception
{
SecretKey deskey = new javaxcryptospecSecretKeySpec (key ,Algorithm );
if (debug ) Systemoutprintln ("解密前的信息:"+byte2hex (input ));
Cipher c1 = CiphergetInstance (Algorithm );
c1init (CipherDECRYPT_MODE ,deskey );
byte [] clearByte =c1doFinal (input );
if (debug )
{
Systemoutprintln ("解密后的二进串:"+byte2hex (clearByte ));
Systemoutprintln ("解密后的字符串:"+(new String (clearByte )));
} return clearByte ;
} /
字节码转换成16进制字符串
@param byte[] b 输入要转换的字节码
@return String 返回转换后的16进制字符串
/
public static String byte2hex (byte [] b )
{
String hs ="";
String stmp ="";
for (int n =0 ;n <blength ;n ++)
{
stmp =(javalangIntegertoHexString (b [n ] & 0XFF ));
if (stmplength ()==1 ) hs =hs +"0"+stmp ;
else hs =hs +stmp ;
if (n <blength -1 ) hs =hs +":";
} return hstoUpperCase ();
}
/
字符串转成字节数组
@param hex 要转化的字符串
@return byte[] 返回转化后的字符串
/
public static byte[] hexStringToByte(String hex) {
int len = (hexlength() / 2);
byte[] result = new byte[len];
char[] achar = hextoCharArray();
for (int i = 0; i < len; i++) {
int pos = i 2;
result[i] = (byte) (toByte(achar[pos]) << 4 | toByte(achar[pos + 1]));
}
return result;
}
private static byte toByte(char c) {
byte b = (byte) "0123456789ABCDEF"indexOf(c);
return b;
}
/
字节数组转成字符串
@param String 要转化的字符串
@return 返回转化后的字节数组
/
public static final String bytesToHexString(byte[] bArray) {
StringBuffer sb = new StringBuffer(bArraylength);
String sTemp;
for (int i = 0; i < bArraylength; i++) {
sTemp = IntegertoHexString(0xFF & bArray[i]);
if (sTemplength() < 2)
sbappend(0);
sbappend(sTemptoUpperCase());
}
return sbtoString();
}
/
从数据库中获取密钥
@param deptid 企业id
@return 要返回的字节数组
@throws Exception 可能抛出的异常
/
public static byte[] getSecretKey(long deptid) throws Exception {
byte[] key=null;
String value=null;
//CommDao dao=new CommDao();
// List list=daogetRecordList("from Key k where kdeptid="+deptid);
//if(listsize()>0){
//value=((comcscsalebeanKey)listget(0))getKey();
value = "CB7A92E3D3491964";
key=hexStringToByte(value);
//}
if (debug)
Systemoutprintln("密钥:" + value);
return key;
}
public String encryptData2(String data) {
String en = null;
try {
byte[] key=hexStringToByte(thiskey);
en = bytesToHexString(encryptData(datagetBytes(),key));
} catch (Exception e) {
eprintStackTrace();
}
return en;
}
public String decryptData2(String data) {
String de = null;
try {
byte[] key=hexStringToByte(thiskey);
de = new String(decryptData(hexStringToByte(data),key));
} catch (Exception e) {
eprintStackTrace();
}
return de;
}
} 加密使用: byte[] key=EryptogramgetSecretKey(deptid); //获得钥匙(字节数组)
byte[] tmp=EryptogramencryptData(passwordgetBytes(), key); //传入密码和钥匙,获得加密后的字节数组的密码
password=EryptogrambytesToHexString(tmp); //将字节数组转化为字符串,获得加密后的字符串密码解密与之差不多
有些时候加密rar软件经常会忘了密码,但记得密码的大概,于是乎用Python写个程序来暴力破解吧:
首先要搞清楚如何用命令行来解压缩,经研究,rar软件解压是用的unrarexe,将这个程序拷贝到C:\windows,然后进入加密软件包所在的文件夹,用命令行运行 下面的命令:
unrarexe e -pabcd 123rar
程序就是先前拷到C:\windows,然后参数e是指相对路径,如果在是本文件夹下运行这个命令,则只打文件名就可以了,输入密码的方式是-p后面的字段,假定是abcd,最后面的是要解压的文件名。
下面我们解决如何用Python来运行windows下的命令行
import subprocess
command = 'unrarexe e -n -pabcd 123rar'
subprocesscall(command)
这样也可以完成解压,既然这样,那就开干吧,写一个暴力循环,我以4位字母为例,字母加的不全,实际使用可以视情况添加
list1=['a','b','c','d']
list2=['a','b','c','d']
list3=['a','b','c','d']
list4=['a','b','c','d']
for i1 in range(0,len(list1),1):
for i2 in range(0,len(list2),1):
for i3 in range(0, len(list3), 1):
for i4 in range(0, len(list4), 1):
password=list1[i1]+list2[i2]+list3[i3]+list4[i4]
print(password)
command = 'unrarexe e -n -p' + password + ' 123rar'
child = subprocesscall(command)
if child == 0:
print('解压密码是:',password)
break
child是返回值,为0表示解压成功,可以挑出循环并打印密码了,我实测,4位纯数字或者字母,只需要十多秒就出来了,非常简单
1 文件加锁王2007 1003
文件或文件夹加密的软件
downloadpchomenet/utility/encrpt/15811html
2 文件加锁王 2007 V1003
我们的目标:打造一流高可靠性文件夹加密软件、走具有
>>
分类: 电脑/网络 >> 软件
解析:
1 金锁文件夹加密特警 566
专为企业应用设计的加密软件,以 *** 作简单,功能强大著称。文件加密加密方式多样,
onlinedown/soft/3347
2 文件加锁王 2006 V7100
我们的目标:打造一流高可靠性文件夹加密软件、走具有
sky/soft/14591
3 金锁文件夹加密特警 V566
专为企业应用设计的加密软件,以 *** 作简单,功能强大著
sky/soft/6534
4 金锁文件夹加密特警 566
高强度的文档加密软件,将目录文件加密后打包成一密文文档
downloadpchome/utility/encrpt/10224
5 金锁文件夹加密特警 530
高强度的文档加密软件,将目录文件加密后打包成一密文文档
antiviruspchome/utility/encrpt/10224
6 E-神加密文件夹 2005 Build 051226
一款功能完善,界面豪华, *** 作简便的文件夹加密软件
downloadpchome/utility/encrpt/18439
7 Abel文件加密器 11
免费的加密软件,体积轻巧,界面美观,高强度,高速度。绿色软件,无须安装。
onlinedown/soft/15855
8 超白金文件加密 V911
本软件是一款免费、绿色的文件加密软件,含加密、伪装
sky/soft/10822
9 E-神加密文件夹 豪华版 Build 051221
一款功能完善, *** 作简便的文件夹加密软件
downloadpchome/utility/encrpt/16340
10 E-神加密文件夹 051226
E-神加密文件夹2005是一款功能强劲,界面豪华, *** 作简便的文件夹加密软件,使用本软件
onlinedown/soft/22072
11 新概念文件加密器 2004 V40
2003-2004年力作 突破传统的加密软件的格局通过该加
sky/soft/11302
12 超级文件夹加密软件 30
这是一款文件夹加密软件,加密之后仍以文件夹形式保存,不需要压缩或者转换成文件的形
onlinedown/soft/37062
13 文件加锁王 2006 V7100
我们的目标:打造一流高可靠性文件夹加密软件、走具有自己特色的加密软件之路!文件
onlinedown/soft/22803
14 万能加密器 55
万能加密器 Easycode Boy Plus! 功能超过其他所有加密软件的小巧高速的加密软件,加密
dlpconline1/1/dlid=7321&dltypeid=1&pn=0&
15 文件保护专家 V920 钻石版
文件保护专家是一款专业的超群的加密软件在技术上居于
sky/soft/17760
16 文件加锁王 2006 V710
我们的目标:打造一流高可靠性文件夹加密软件、走具有自己特色的加密软件之路!
download21/listphpid=37739
17 文件保护专家 920
加密效果较出色的文件加密软件
downloadpchome/system/file/fileman/3250
18 超白金文件加密 911
本软件是一款免费、绿色的文件加密软件,含加密、伪装等功能。特点:特小巧,仅27KB,
onlinedown/soft/5602
19 日月精华--文件加密软件 V49
本软件,是由日月精华工作室推出的一款全免费加密软
sky/soft/22192
20 ABI-Corder 3613
ABI-Coder 是拥有192bit强大加密功能的加密软件,不仅具有强大的文件加密功能,更神奇
dlpconline1/5/dlid=4415&dltypeid=1&pn=0&
s = raw_input('[开始加密]please input your str:')
s = list(s)
n = 0
for sw in s:
s[n] = chr(ord(sw)+3)
n = n + 1
sout = ''
for sw2 in s:
sout = sout + sw2
print '[加密结果]:',sout
解密的类似,主要用到ord、chr函数。
首先建议您可以和这款软件的作者和客服人员联系一下,看是否有解决办法。
您以后可以选择专业的加密软件来给您的文件和文件夹加密。
文件夹加密超级大师是文件加密软件中非常不错的选择。
文件夹加密超级大师是专业的文件加密软件,文件加密后如果需要使用,只需要输入正确密码,点击打开,使用完毕后,文件就自动回复到加密状态了。
文件夹加密超级大师的功能相当的强大,您可以到百度上搜索文件夹加密超级大师给您的文件和文件夹加密试试,看看加密效果怎么样?
以上就是关于jmu-python-凯撒密码加密算法,谢谢全部的内容,包括:jmu-python-凯撒密码加密算法,谢谢、java加密解密代码、如何用Python写一个暴力破解加密压缩包的程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)