当前位置:首页 » 编程语言 » phprc4加密

phprc4加密

发布时间: 2022-05-29 19:34:33

php RC4加密为什么有时候会乱码有时候又不会

没贴出来具体代码,无法直接定位,挨个排查吧
1、算法部分的代码有缺陷
2、文件编码没有统一
3、HTML编码,比如浏览器设置成自动识别并且html没有指定输出编码方式

Ⅱ PHP有什么文本加密函数!

可以使用DES ,我个人是使用DES, 因为有时候需要用到PHP+c# 所以DES是最好的选择

Ⅲ php openssl生成的rsa密钥给android和ios使用注意哪些问题

openssl的功能:*生成RSA,DSA双密匙(还可以再给他们签名)*生成X509证书*计算印章(MD5,SHA,,RIPEMD160)用于加密大文件*加密,解密(算法有DES,IDEA,RC2,RC4,Blowfish)*SSL服务器端/客户端测试*处理签名或加密了的

Ⅳ 求C#和PHP的RC4相互加密解密

使用这个类应该可以实现的,只不不过你提出文件是早期的DES,只能是64bits加必,而现在却是不同的,它与net2.0版本中是一致的,而是高版本中必须设置这几个相应的属性。 请查看 DESCryptoServiceProvider类的字段或属性,然后再进行测试。

Ⅳ 易语言与PHP RC4加密解密的问题

位密码算法:DES 三重DES(Triple-DES)仍然是很安全的,但是也只是在别无他法的情况下的一个较好的选择。显然高级加密标准(AES)是一个更好的加密算法,NIST用AES代替Triple-DES作为他们的标准(下面有更详细的讨论)。其他较好的算法包括另外两个AES的变种算法Twofish和Serpent-也称为CAST-128,它是效率和安全的完美结合。这几个算法不仅比DES更安全,而且也比DES的速度更快。为什么要使用一些又慢又不安全的算法呢?SHA1是一个哈希函数,而不是一个加密函数。作为一个哈希函数,SHA1还是相当优秀的,但是还需要几年的发展才能用作加密算法。如果你正在设计一个新系统,那么谨记你可能会在若干年后用SHA1代替目前的算法。我再重复一遍:只是可能。呵呵,希望能帮到你!谢谢望采纳哦!

Ⅵ php加密文件 解密data 转nsstring 为nil. rc4 ios

IOS:引入ios自带库 #include

先以DES加密算法为例讲解,DES的加密和解密都同用一个Key,下面两个加解密函数如下:
//加密
-(NSString *) encryptUseDES:(NSString *)clearText key:(NSString *)key
{
//一般对加密的字符串采用UTF-8编码 NSData存储的就是二进制数据
NSData *data = [clearText dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
//See the doc: For block ciphers, the output size will always be less than or
//equal to the input size plus the size of one block.
//确定加密过后的字符串在内存中存放的大小,根据文档,对于块密码方式(这个库还包括流密码方式)
//加密过后的字符串大小总是小于或等于加密之前数据的大小加上对应加密算法的块大小
//但看到一些大牛还这样一下 & ~(kCCBlockSizeDES - 1) 目前不知道为嘛
size_t bufferSize = ([data length] + kCCBlockSizeDES) & ~(kCCBlockSizeDES - 1);
//void *buffer = malloc(bufferSize);//可以手动创建buffer,但之后要记得free掉
unsigned char buffer[bufferSize]; //定义输出加密串所占内存空间
memset(buffer, 0, sizeof(char)); //采用ios中宏定义好的方法分配空间,可免去手动free
size_t numBytesEncrypted = 0; //输出加密串的字节数

//加密数据,采用库中的CCCrypt方法,这个方法会按次序执行CCCrytorCreate(),
// CCCryptorUpdate(), CCCryptorFinal(), and CCCryptorRelease() 如果开发者自己create这个对象,
//那么后面就必须执行final、release之类的函数,CCCrypt方法一次性解决

// Byte iv[] = {0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF};
//Byte iv[] = {1,2,3,4,5,6,7,8}; 加密所需的随机字符
CCCryptorStatus cryptStatus = CCCrypt(kCCEncrypt, //加密方式,kCCEncrypt加密 kCCDecrypt解密
kCCAlgorithmDES, //采用的加密算法,内置包含AES、DES、
//3DES、其他还有四个,不知道是什么
//后续讨论
//加密额外参数,注意此处各个平台之间指定的时候要记得一样
kCCOptionPKCS7Padding | kCCOptionECBMode,
[key UTF8String], //加密密匙 UTF8的字符串
kCCKeySizeDES, //密匙长度字节 各算法有对应的长度宏
nil, //随机字符,可指定也可不指定,各平台之间不绝对
[data bytes], //待加密串的字节长度
[data length], //待加密串的长度
buffer, //输出已加密串的内存地址
bufferSize, //已加密串的大小
&numBytesEncrypted);

NSString* plainText = nil;
if (cryptStatus == kCCSuccess) {
NSData *dataTemp = [NSData dataWithBytes:buffer length:(NSUInteger)numBytesEncrypted];
plainText = [GTMBase64 stringByEncodingData:dataTemp];
}else{
NSLog(@"DES加密失败");
}
return plainText;
}

//解密
-(NSString*) decryptUseDES:(NSString*)cipherText key:(NSString*)key {
// 利用 GTMBase64 解码 Base64 字串
NSData* cipherData = [GTMBase64 decodeString:cipherText];
size_t bufferSize = ([cipherData length] + kCCBlockSizeDES) & ~(kCCBlockSizeDES - 1);
//unsigned char buffer[1024];
unsigned char buffer[bufferSize];
memset(buffer, 0, sizeof(char));
size_t numBytesDecrypted = 0;

// IV 偏移量不需使用
CCCryptorStatus cryptStatus = CCCrypt(kCCDecrypt,
kCCAlgorithmDES,
kCCOptionPKCS7Padding | kCCOptionECBMode,
[key UTF8String],
kCCKeySizeDES,
nil,
[cipherData bytes],
[cipherData length],
buffer,
bufferSize,//1024,
&numBytesDecrypted);
NSString* plainText = nil;
if (cryptStatus == kCCSuccess) {
NSData* data = [NSData dataWithBytes:buffer length:(NSUInteger)numBytesDecrypted];
plainText = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease];
}
return plainText;
}

java和php平台的代码实现:

Java代码 收藏代码
import java.io.IOException;
import java.security.SecureRandom;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
public class DES {

private byte[] desKey;

public DES(String desKey) {
this.desKey = desKey.getBytes();
}

public byte[] desEncrypt(byte[] plainText) throws Exception {
SecureRandom sr = new SecureRandom();
byte rawKeyData[] = desKey;
DESKeySpec dks = new DESKeySpec(rawKeyData);
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey key = keyFactory.generateSecret(dks);
Cipher cipher = Cipher.getInstance("DES");
cipher.init(Cipher.ENCRYPT_MODE, key, sr);
byte data[] = plainText;
byte encryptedData[] = cipher.doFinal(data);
return encryptedData;
}

public byte[] desDecrypt(byte[] encryptText) throws Exception {
SecureRandom sr = new SecureRandom();
byte rawKeyData[] = desKey;
DESKeySpec dks = new DESKeySpec(rawKeyData);
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey key = keyFactory.generateSecret(dks);
Cipher cipher = Cipher.getInstance("DES");
cipher.init(Cipher.DECRYPT_MODE, key, sr);
byte encryptedData[] = encryptText;
byte decryptedData[] = cipher.doFinal(encryptedData);
return decryptedData;
}

public String encrypt(String input) throws Exception {
return base64Encode(desEncrypt(input.getBytes()));
}

public String decrypt(String input) throws Exception {
byte[] result = base64Decode(input);
return new String(desDecrypt(result));
}

public static String base64Encode(byte[] s) {
if (s == null)
return null;
BASE64Encoder b = new sun.misc.BASE64Encoder();
return b.encode(s);
}

public static byte[] base64Decode(String s) throws IOException {
if (s == null)
return null;
BASE64Decoder decoder = new BASE64Decoder();
byte[] b = decoder.decodeBuffer(s);
return b;
}

public static void main(String[] args) throws Exception {
String key = "abcdefgh";
String input = "a";
DES crypt = new DES(key);
System.out.println("Encode:" + crypt.encrypt(input));
System.out.println("Decode:" + crypt.decrypt(crypt.encrypt(input)));
}
}

php 方法一
Php代码 收藏代码
<?php
class DES1 {
var $key;
function DES1($key) {
$this->key = $key;
}
function encrypt($input) {
$size = mcrypt_get_block_size('des', 'ecb');
$input = $this->pkcs5_pad($input, $size);
$key = $this->key;
$td = mcrypt_mole_open('des', '', 'ecb', '');
$iv = @mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
@mcrypt_generic_init($td, $key, $iv);
$data = mcrypt_generic($td, $input);
mcrypt_generic_deinit($td);
mcrypt_mole_close($td);
$data = base64_encode($data);
return $data;
}
function decrypt($encrypted) {
$encrypted = base64_decode($encrypted);
$key =$this->key;
$td = mcrypt_mole_open('des','','ecb','');
//使用MCRYPT_DES算法,cbc模式
$iv = @mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
$ks = mcrypt_enc_get_key_size($td);
@mcrypt_generic_init($td, $key, $iv);
//初始处理
$decrypted = mdecrypt_generic($td, $encrypted);
//解密
mcrypt_generic_deinit($td);
//结束
mcrypt_mole_close($td);
$y=$this->pkcs5_unpad($decrypted);
return $y;
}
function pkcs5_pad ($text, $blocksize) {
$pad = $blocksize - (strlen($text) % $blocksize);
return $text . str_repeat(chr($pad), $pad);
}
function pkcs5_unpad($text) {
$pad = ord($text{strlen($text)-1});
if ($pad > strlen($text))
return false;
if (strspn($text, chr($pad), strlen($text) - $pad) != $pad)
return false;
return substr($text, 0, -1 * $pad);
}
}
$key = "abcdefgh";
$input = "a";
$crypt = new DES1($key);
echo "Encode:".$crypt->encrypt($input)."<br/>";
echo "Decode:".$crypt->decrypt($crypt->encr

Ⅶ RC4 php加密后用同样的密钥 java无法解密是情况

JAVA是垃圾

Ⅷ 我下载的php文件为什么打不开

你是要让你的装了IIS的机器支持PHP呢还是只是单纯的打开*.php的文件?

如果是要支持PHP,那么你要装专门的PHP解释器。

首先你去下载php-4.3.4-Win32.zip。

下面为配置步骤:

1)将php-4.3.3RC4-Win32.zip里面的所有文件和文件夹压缩并放置在C:\\php4\\文件夹中,没有自己创建该文件夹

2)进入php4文件夹,查看根目录和子目录,把所有.dll文件都统统复制粘贴到C:\\WINNT\\system32(WIN2K)或C:\\WINDOWS\\system32(WINXP)中

3)把php4文件夹里面的php.ini-dist和php.exe文件复制到

C:\\WINNT\\(WIN2K)或C:\\WINDOWS\\(WINXP)中,并将php.ini-dist文件改为php.ini

4)双击php.ini打开该配置文件,进行下面3个地方的修改:

1> 把extension_dir = "C:\\php4\\extensions" 改为你安装php4的 extensions文件夹路径

2> 把 ;cgi.force_redirect = 1 改为 cgi.force_redirect = 0

3> 把 register_globals = Off 改为 register_globals = On

4> 找到 ;Windows Extensions 段,你应该可以看到如下代码

;

;extension=php_bz2.dll

;extension=php_cpdf.dll

;extension=php_crack.dll

;extension=php_curl.dll

;extension=php_db.dll

;extension=php_dba.dll

;extension=php_dbase.dll

;extension=php_dbx.dll

;extension=php_domxml.dll

;extension=php_exif.dll

;extension=php_fdf.dll

;extension=php_filepro.dll

;extension=php_gd2.dll

;extension=php_gettext.dll

;extension=php_hyperwave.dll

;extension=php_iconv.dll

;extension=php_ifx.dll

;extension=php_iisfunc.dll

;extension=php_imap.dll

;extension=php_interbase.dll

;extension=php_java.dll

;extension=php_ldap.dll

;extension=php_mbstring.dll

;extension=php_mcrypt.dll

;extension=php_mhash.dll

;extension=php_mime_magic.dll

;extension=php_ming.dll

;extension=php_mssql.dll

;extension=php_msql.dll

;extension=php_oci8.dll

;extension=php_openssl.dll

;extension=php_oracle.dll

;extension=php_pdf.dll

;extension=php_pgsql.dll

;extension=php_printer.dll

;extension=php_shmop.dll

;extension=php_snmp.dll

;extension=php_sockets.dll

;extension=php_sybase_ct.dll

;extension=php_w32api.dll

;extension=php_xmlrpc.dll

;extension=php_xslt.dll

;extension=php_yaz.dll

;extension=php_zip.dll

具体还得看你需要加载哪些.dll文件,不过你按照下面我这样改也行,主要是要加载的.dll文件就去掉前面的分号( ; ) :

;

;extension=php_bz2.dll

;extension=php_cpdf.dll

;extension=php_crack.dll

;extension=php_curl.dll

;extension=php_db.dll

;extension=php_dba.dll

;extension=php_dbase.dll

;extension=php_dbx.dll

;extension=php_domxml.dll

extension=php_exif.dll

;extension=php_fdf.dll

;extension=php_filepro.dll

extension=php_gd2.dll

;extension=php_gettext.dll

;extension=php_hyperwave.dll

;extension=php_iconv.dll

;extension=php_ifx.dll

;extension=php_iisfunc.dll

extension=php_imap.dll

;extension=php_interbase.dll

;extension=php_java.dll

;extension=php_ldap.dll

;extension=php_mbstring.dll

;extension=php_mcrypt.dll

;extension=php_mhash.dll

;extension=php_mime_magic.dll

;extension=php_ming.dll

;extension=php_mssql.dll

;extension=php_msql.dll

;extension=php_oci8.dll

;extension=php_openssl.dll

;extension=php_oracle.dll

;extension=php_pdf.dll

;extension=php_pgsql.dll

;extension=php_printer.dll

;extension=php_shmop.dll

;extension=php_snmp.dll

;extension=php_sockets.dll

;extension=php_sybase_ct.dll

;extension=php_w32api.dll

;extension=php_xmlrpc.dll

;extension=php_xslt.dll

;extension=php_yaz.dll

;extension=php_zip.dll

5)再次打开控制面板-管理工具-Internet服务管理器,在"默认web站点"上右键单击,选择"属性"

6)选中"默认 Web 站点 属性"窗口的"主目录"选项卡,点击右下角的"配置"按钮,出现"应用程序配置"窗口,点击"应用程序映射"下面的"添加"按钮,添加下面的程序映射:

可执行文件: C:\\php4\\php.exe %s %s (也就是你的php4文件夹路径)

扩展名: .php

确定完成配置!

7)切换到"默认 Web 站点 属性"窗口的"ISAPI筛选器"选项卡,点击右边的"添加"按钮,添加下面的一个筛选器:

筛选器名称: PHP

可执行文件: C:\\php4\\sapi\\php4isapi.dll (也就是你的php4文件夹的 sapi文件夹路径)

确定后关闭"Internet服务管理器"

8)继续切换到"默认 Web 站点 属性"窗口的"文档"选项卡,点击右边的"添加"按钮,添加如下"启用默认文档":

index.php 也可以添加 index.php3 index.php4 等等 看你的需要而定

点击左边的"↑"按钮,把index.php文档提升到最上面

现在你的IIS也支持PHP了.

Ⅸ php如何对文件进行RC4加密

不清楚。

给文件加密,我使用的是超级加密3000.

超级加密 3000采用先进的加密算法,使你的文件和文件夹加密后,真正的达到超高的加密强度,让你的加密数据无懈可击。

热点内容
大众朗逸哪个配置好点 发布:2025-02-12 01:25:41 浏览:67
引用jar怎么发布到服务器 发布:2025-02-12 01:07:44 浏览:333
旧电脑开服务器 发布:2025-02-12 01:02:50 浏览:277
电脑服务器两个电源什么意思 发布:2025-02-12 00:55:15 浏览:220
linux外网不能访问端口 发布:2025-02-12 00:55:13 浏览:438
安卓系统哪里可以看充电次数 发布:2025-02-12 00:53:53 浏览:723
如何选物理服务器cpu 发布:2025-02-12 00:48:22 浏览:68
怎么买编程 发布:2025-02-12 00:31:42 浏览:932
固态硬盘如何做缓存盘 发布:2025-02-12 00:19:48 浏览:519
cm13源码下载 发布:2025-02-12 00:13:58 浏览:554