我就是专门做破解工作的,没有说普通的加密很容易破解,你有密码里加入大小写,特殊符号以及空格,或者在加上几个其它国家的语言文子(比如日文)10位以上,这样就很难破解了,
如果这样不行的话,你用最新版本的RAR(压缩包加密)位数多一点,再加上大小写,特殊符号以及空格或者在加上几个其它国家的语言文字(比如日文)10位以上,目前基本无法破解,破解软件对这种远算只能达到一秒几次。
namespace CryptoRC4
{
using System;
using System.Text;
public class clsRC4Engine
{
private static long m_nBoxLen = 255;
protected clsRC4Engine()
{
}
private static void GetKeyBytes( string Key, out byte[] m_nBox )
{
long index2 = 0;
m_nBox = new byte[m_nBoxLen];
Encoding ascii = Encoding.ASCII;
Encoding unicode = Encoding.Unicode;
byte[] asciiBytes = Encoding.Convert(unicode,ascii, unicode.GetBytes( Key ));
char[] asciiChars = new char[ascii.GetCharCount(asciiBytes,0,asciiBytes.Length)];
ascii.GetChars(asciiBytes,0,asciiBytes.Length,asciiChars,0);
long KeyLen = Key.Length;
for ( long count = 0; count < m_nBoxLen ; count ++ )
{
m_nBox[count] = (byte)count;
}
for ( long count = 0; count < m_nBoxLen ; count ++ )
{
index2 = (index2 + m_nBox[count] + asciiChars[ count % KeyLen ]) % m_nBoxLen;
byte temp = m_nBox[count];
m_nBox[count] = m_nBox[index2];
m_nBox[index2] = temp;
}
}
private static bool GetEncryptBytes( string sData, byte[] m_nBox,out byte[] EncryptedBytes )
{
EncryptedBytes = null;
bool toRet = true;
try
{
long i=0;
long j=0;
Encoding enc_default = Encoding.Unicode;
byte[] input = enc_default.GetBytes( sData );
EncryptedBytes = new byte[input.Length];
byte[] n_LocBox = new byte[m_nBoxLen];
m_nBox.CopyTo(n_LocBox,0);
long ChipherLen = input.Length + 1;
for ( long offset = 0; offset < input.Length ; offset++ )
{
i = ( i + 1 ) % m_nBoxLen;
j = ( j + n_LocBox[i] ) % m_nBoxLen;
byte temp = n_LocBox[i];
n_LocBox[i] = n_LocBox[j];
n_LocBox[j] = temp;
byte a = input[offset];
byte b = n_LocBox[(n_LocBox[i]+n_LocBox[j])% m_nBoxLen];
EncryptedBytes[offset] = (byte)((int)a^(int)b);
}
}
catch
{
EncryptedBytes = null;
toRet = false;
}
return toRet;
}
public static bool Encrypt( string sData, string Key, out string EncryptedString )
{
EncryptedString = null;
if( sData == null || Key == null ) return false;
byte[] m_nBox;
GetKeyBytes( Key, out m_nBox );
byte[] output;
if( GetEncryptBytes( sData, m_nBox, out output ) )
{
// Convert data to hex-data
EncryptedString = "";
for( int i = 0; i < output.Length; i++ )
EncryptedString += output[i].ToString( "X2" );
return true;
}
else
return false;
}
/// <summary>
/// Decrypt data using specific key
/// </summary>
/// <param name="EncryptedString"></param>
/// <param name="Key"></param>
/// <param name="sData"></param>
/// <returns></returns>
public static bool Decrypt( string EncryptedString, string Key, out string sData )
{
sData = null;
if( EncryptedString == null || Key == null ) return false;
else if( EncryptedString.Length % 2 != 0 ) return false;
byte[] m_nBox;
GetKeyBytes( Key, out m_nBox );
// Convert data from hex-data to string
byte[] bData = new byte[EncryptedString.Length / 2];
for( int i = 0; i < bData.Length; i++ )
bData[i] = Convert.ToByte( EncryptedString.Substring( i * 2, 2 ), 16 );
EncryptedString = Encoding.Unicode.GetString( bData );
byte[] output;
if( GetEncryptBytes( EncryptedString, m_nBox, out output ) )
{
sData = Encoding.Unicode.GetString( output );
return true;
}
else
return false;
}
}
}
调用:
//Encrypt data
string strEncryptedString;
if( clsRC4Engine.Encrypt( strValue, strKey, out strEncryptedString ) )
MessageBox.Show( strEncryptedString );
//Decrypt data
string strDecryptedString;
if( clsRC4Engine.Decrypt( strValue, strKey, out strDecryptedString ) )
MessageBox.Show( strDecryptedString );
另外一种
public static string encrypt_str( string str )
{
string s = "";
int i_Encrypt = ClsSetConst.m_Set_Encrypt;
char[] s_array = str.ToCharArray();
for(int i = 0; i < s_array.Length; i++)
{
int x = ((int)s_array[i]) + i_Encrypt;
s += (char)(x);
}
return s;
}
public void decript_str(string str)
{
string s = "";
int i_Encrypt = ClsSetConst.m_Set_Encrypt;
char[] s_array = str.ToCharArray();
for(int i = 0; i < s_array.Length; i++)
{
int x = ((int)s_array[i]) - i_Encrypt;
s += (char)x;
}
自己看看有没有输错的地方吧
㈡ php如何对文件进行RC4加密
1.原始钥匙 key
2.md5(md5+常量) 加密原始key => mkey
3.mkey 作为AC4的密匙 ac_mkey
4.ac_mkey 对加密数据 进行 AC4 加密 得到AC4密码
5.AC4密码 在进行一次 AC4加密可还原 加密数据
简单来说,一句话,用md5 做AC4的密匙
以下是代码
<?php
/*
* rc4加密算法
* $pwd 密钥
* $data 要加密的数据
*/
function rc4 ($pwd, $data)//$pwd密钥 $data需加密字符串
{
$key[] ="";
$box[] ="";
$pwd_length = strlen($pwd);
$data_length = strlen($data);
for ($i = 0; $i < 256; $i++)
{
$key[$i] = ord($pwd[$i % $pwd_length]);
$box[$i] = $i;
}
for ($j = $i = 0; $i < 256; $i++)
{
$j = ($j + $box[$i] + $key[$i]) % 256;
$tmp = $box[$i];
$box[$i] = $box[$j];
$box[$j] = $tmp;
}
for ($a = $j = $i = 0; $i < $data_length; $i++)
{
$a = ($a + 1) % 256;
$j = ($j + $box[$a]) % 256;
$tmp = $box[$a];
$box[$a] = $box[$j];
$box[$j] = $tmp;
$k = $box[(($box[$a] + $box[$j]) % 256)];
$cipher .= chr(ord($data[$i]) ^ $k);
}
return $cipher;
}
$key = '5201314'; //原始KEY
$pwd = md5(md5($key).'我是常量'); //md5+常量
$data = '我爱北京天安门'; //要加密的数据
$cipher = rc4($pwd, $data); //AC4 加密算法
$c = rc4($pwd, $cipher); //AC4 加密算法还原 (还原只需要重新加密一次)
echo '<pre>';
var_mp($key);
var_mp($pwd);
var_mp($data);
var_mp($cipher);
var_mp($c);
?>
㈢ 无线网络信号传输机制的采用加密法保护无线信号
除了上面的几种方法能够保护无线局域网的工作安全性外,还有一种比较有效的保护方法,那就是对无线传输信号进行加密,这种方法往往具有很高的安全防范效果。
当前无线节点设备比较常用的加密方法包括两种,一种是WEP加密技术,另外一种就是WPA加密技术。其中WEP技术也叫对等保密技术,该技术一般在网络链路层进行RC4对称加密,无线上网用户的密钥内容一定要与无线节点的密钥内容完全相同,才能正确地访问到网络内容,这样就能有效避免非授权用户通过监听或其他攻击手段来偷偷访问本地无线网络。正常来说,WEP加密技术为我们普通用户提供了40位、128位甚至152位长度的几种密钥算法机制。一旦无线上网信号经过WEP加密后,本地无线网络附近的非法用户即使通过专业工具窃取到上网传输信号,他们也无法看到其中的具体内容,如此一来本地无线上网信号就不容易对外泄密了,那么无线局域网的数据发送安全性和接收安全性就会大大提高了。而且WEP加密的选用位数越高,非法用户破解无线上网信号的难度就越大,本地无线网络的安全系数也就越高。 因为WEP加密技术先天性不足,催生了另外一个更加安全的加密技术-WPA的出现,这种加密技术可以看作是WEP加密技术的增强产品,它比WEP加密技术更具安全性和保护性,这种加密技术包含TKIP加密方式和AES加密方式。
㈣ 十大常见密码加密方式
一、密钥散列
采用MD5或者SHA1等散列算法,对明文进行加密。严格来说,MD5不算一种加密算法,而是一种摘要算法。无论多长的输入,MD5都会输出一个128位(16字节)的散列值。而SHA1也是流行的消息摘要算法,它可以生成一个被称为消息摘要的160位(20字节)散列值。MD5相对SHA1来说,安全性较低,但是速度快;SHA1和MD5相比安全性高,但是速度慢。
二、对称加密
采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密。对称加密算法中常用的算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK等。
三、非对称加密
非对称加密算法是一种密钥的保密方法,它需要两个密钥来进行加密和解密,这两个密钥是公开密钥和私有密钥。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。非对称加密算法有:RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)。
四、数字签名
数字签名(又称公钥数字签名)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。它是一种类似写在纸上的普通的物理签名,但是在使用了公钥加密领域的技术来实现的,用于鉴别数字信息的方法。
五、直接明文保存
早期很多这样的做法,比如用户设置的密码是“123”,直接就将“123”保存到数据库中,这种是最简单的保存方式,也是最不安全的方式。但实际上不少互联网公司,都可能采取的是这种方式。
六、使用MD5、SHA1等单向HASH算法保护密码
使用这些算法后,无法通过计算还原出原始密码,而且实现比较简单,因此很多互联网公司都采用这种方式保存用户密码,曾经这种方式也是比较安全的方式,但随着彩虹表技术的兴起,可以建立彩虹表进行查表破解,目前这种方式已经很不安全了。
七、特殊的单向HASH算法
由于单向HASH算法在保护密码方面不再安全,于是有些公司在单向HASH算法基础上进行了加盐、多次HASH等扩展,这些方式可以在一定程度上增加破解难度,对于加了“固定盐”的HASH算法,需要保护“盐”不能泄露,这就会遇到“保护对称密钥”一样的问题,一旦“盐”泄露,根据“盐”重新建立彩虹表可以进行破解,对于多次HASH,也只是增加了破解的时间,并没有本质上的提升。
八、PBKDF2
该算法原理大致相当于在HASH算法基础上增加随机盐,并进行多次HASH运算,随机盐使得彩虹表的建表难度大幅增加,而多次HASH也使得建表和破解的难度都大幅增加。
九、BCrypt
BCrypt 在1999年就产生了,并且在对抗 GPU/ASIC 方面要优于 PBKDF2,但是我还是不建议你在新系统中使用它,因为它在离线破解的威胁模型分析中表现并不突出。
十、SCrypt
SCrypt 在如今是一个更好的选择:比 BCrypt设计得更好(尤其是关于内存方面)并且已经在该领域工作了 10 年。另一方面,它也被用于许多加密货币,并且我们有一些硬件(包括 FPGA 和 ASIC)能实现它。 尽管它们专门用于采矿,也可以将其重新用于破解。
㈤ uniapp如何加密解密rc4
uniapp如何加密解密rc4步骤:
1、第一步是生成S盒
2、初始排列S然后用T产生S的初始置换.从S到S255,对每个Si,根据由Ti确定的方案,将Si置换为S中的另一字节
3、产生密钥流矢量S一旦完成初始化,输人密钥就不再被使用。
4、最后进行异或运算data与key按位异或操作
㈥ 对称加密算法的加密算法主要有哪些
1、3DES算法
3DES(即Triple DES)是DES向AES过渡的加密算法(1999年,NIST将3-DES指定为过渡的加密标准),加密算法,其具体实现如下:设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,M代表明文,C代表密文,这样:
3DES加密过程为:C=Ek3(Dk2(Ek1(M)))
3DES解密过程为:M=Dk1(EK2(Dk3(C)))
2、Blowfish算法
BlowFish算法用来加密64Bit长度的字符串。
BlowFish算法使用两个“盒”——unsignedlongpbox[18]和unsignedlongsbox[4,256]。
BlowFish算法中,有一个核心加密函数:BF_En(后文详细介绍)。该函数输入64位信息,运算后,以64位密文的形式输出。用BlowFish算法加密信息,需要两个过程:密钥预处理和信息加密。
分别说明如下:
密钥预处理:
BlowFish算法的源密钥——pbox和sbox是固定的。我们要加密一个信息,需要自己选择一个key,用这个key对pbox和sbox进行变换,得到下一步信息加密所要用的key_pbox和key_sbox。具体的变化算法如下:
1)用sbox填充key_sbox
2)用自己选择的key8个一组地去异或pbox,用异或的结果填充key_pbox。key可以循环使用。
比如说:选的key是"abcdefghijklmn"。则异或过程为:
key_pbox[0]=pbox[0]abcdefgh;
key_pbox[1]=pbox[1]ijklmnab;
…………
…………
如此循环,直到key_pbox填充完毕。
3)用BF_En加密一个全0的64位信息,用输出的结果替换key_pbox[0]和key_pbox[1],i=0;
4)用BF_En加密替换后的key_pbox,key_pbox[i+1],用输出替代key_pbox[i+2]和key_pbox[i+3];
5)i+2,继续第4步,直到key_pbox全部被替换;
6)用key_pbox[16]和key_pbox[17]做首次输入(相当于上面的全0的输入),用类似的方法,替换key_sbox信息加密。
信息加密就是用函数把待加密信息x分成32位的两部分:xL,xRBF_En对输入信息进行变换。
3、RC5算法
RC5是种比较新的算法,Rivest设计了RC5的一种特殊的实现方式,因此RC5算法有一个面向字的结构:RC5-w/r/b,这里w是字长其值可以是16、32或64对于不同的字长明文和密文块的分组长度为2w位,r是加密轮数,b是密钥字节长度。
(6)rc4对称怎么加密扩展阅读:
普遍而言,有3个独立密钥的3DES(密钥选项1)的密钥长度为168位(三个56位的DES密钥),但由于中途相遇攻击,它的有效安全性仅为112位。密钥选项2将密钥长度缩短到了112位,但该选项对特定的选择明文攻击和已知明文攻击的强度较弱,因此NIST认定它只有80位的安全性。
对密钥选项1的已知最佳攻击需要约2组已知明文,2部,2次DES加密以及2位内存(该论文提到了时间和内存的其它分配方案)。
这在现在是不现实的,因此NIST认为密钥选项1可以使用到2030年。若攻击者试图在一些可能的(而不是全部的)密钥中找到正确的,有一种在内存效率上较高的攻击方法可以用每个密钥对应的少数选择明文和约2次加密操作找到2个目标密钥中的一个。
㈦ 在密码学中,常见的对称加密算法有哪些各有什么特点
常见的对称加密算法有:
DES ——密钥短,使用时间长,硬件计算快于软件。
IDEA——个人使用不受专利限制,可抵抗差分攻击,基于三个群。
AES ——可变密钥长,可变分组长。
以上三个属于块式,明文按分组加密。
RC4 ——流式加密,不需填充明文,密钥长度可变。
㈧ 对称密码体制的内容和典型算法
内容:在对称加密系统中,加密和解密采用相同的密钥。因为加解密密钥相同,需要通信的双方必须选择和保存他们共同的密钥,各方必须信任对方不会将密钥泄密出去,这样就可以实现数据的机密性和完整性。
算法:DES(Data Encryption Standard数据加密标准)算法及其变形Triple DES(三重DES),GDES(广义DES);欧洲的IDEA;日本的FEAL N、RC5等。
Triple DES使用两个独立的56bit密钥对交换的信息进行3次加密,从而使其有效长度达到112bit。RC2和RC4方法是RSA数据安全公司的对称加密专利算法,它们采用可变密钥长度的算法。通过规定不同的密钥长度,,C2和RC4能够提高或降低安全的程度。
(8)rc4对称怎么加密扩展阅读:
密码体制的基本模式:
通常的密码体制采用移位法、代替法和代数方法来进行加密和解密的变换,可以采用一种或几种方法结合的方式作为数据变换的基本模式,下面举例说明:
移位法也叫置换法。移位法把明文中的字符重新排列,字符本身不变但其位置改变了。
例如最简单的例子:把文中的字母和字符倒过来写。
或将密文以固定长度来发送
5791ECNI SYLDIPAT DEVLOBES AHYTIRUC ESATAD**。
㈨ 无线网络传输机制的采用加密法保护无线信号
除了上面的几种方法能够保护无线局域网的工作安全性外,还有一种比较有效的保护方法,那就是对无线传输信号进行加密,这种方法往往具有很高的安全防范效果。
当前无线节点设备比较常用的加密方法包括两种,一种是WEP加密技术,另外一种就是WPA加密技术。其中WEP技术也叫对等保密技术,该技术一般在网络链路层进行RC4对称加密,无线上网用户的密钥内容一定要与无线节点的密钥内容完全相同,才能正确地访问到网络内容,这样就能有效避免非授权用户通过监听或其他攻击手段来偷偷访问本地无线网络。正常来说,WEP加密技术为我们普通用户提供了40位、128位甚至152位长度的几种密钥算法机制。一旦无线上网信号经过WEP加密后,本地无线网络附近的非法用户即使通过专业工具窃取到上网传输信号,他们也无法看到其中的具体内容,如此一来本地无线上网信号就不容易对外泄密了,那么无线局域网的数据发送安全性和接收安全性就会大大提高了。而且WEP加密的选用位数越高,非法用户破解无线上网信号的难度就越大,本地无线网络的安全系数也就越高。
不过WEP加密技术也存在明显缺陷,比方说同一个无线局域网中的所有用户往往都共享使用相同的一个密钥,只有其中一个用户丢失了密钥,那么整个无线局域网网络都将变得不安全。而且考虑到WEP加密技术已经被发现存在明显安全缺陷,非法用户往往能够在有限的几个小时内就能将加密信号破解掉。
因为WPA加密技术先天性不足,催生了另外一个更加安全的加密技术-WPA的出现,这种加密技术可以看作是WEP加密技术的增强产品,它比WEP加密技术更具安全性和保护性,这种加密技术包含TKIP加密方式和AES加密方式。
在为无线节点设备设置加密密钥时,我们可以使用两种方式来进行,一种方式比较简单,另外一种方式则不那么简单。比较简单的方式就是我们可以使用无线节点设备中自带的密钥生成器来自动生成密钥,另外一种方式就是我们采用手工方法选择合适的加密密钥,比方说我们可以使用字母A-F和数字0-9的组合来混合设置加密密钥。
要对无线上网信号进行加密时,我们可以先从普通无线工作站中运行IE浏览器程序,并在浏览窗口中输入无线节点设备默认的后台管理地址,之后正确输入管理员帐号名称以及密码,进入到该设备的后台管理页面,单击该页面中的“首页”选项卡,并在对应选项设置页面的左侧显示区域单击“无线网络”项目,在对应该项目的右侧列表区域,找到“安全方式”设置选项,并用鼠标单击该设置项旁边的下拉按钮,从弹出的下拉列表中我们可以看到无线节点设备一般能够同时支持“WEP”加密协议和“WPA”加密协议。
选中最常用的“WEP”加密协议,之后选择好合适的身份验证方式,一般无线节点设备都为用户提供了共享密钥、自动选择以及开放系统这三个验证方式,为了有效保护无线网络传输信息的安全,我们应该在这里选用“共享密钥”验证方式。接着在“WEP密码”文本框中正确输入合适的无线网络访问密码,再单击对应设置页面中的“执行”按钮,以便保存好上面的设置操作,最后将无线节点设备重新启动一下,如此一来我们就在无线节点设备中成功地对本地无线网络进行了加密