标签: encryption-symmetric

使用PHP进行最简单的双向加密

在常见的PHP安装中进行双向加密的最简单方法是什么?

我需要能够使用字符串密钥加密数据,并使用相同的密钥在另一端解密.

安全性并不像代码的可移植性那么重要,因此我希望能够尽可能简化事情.目前,我正在使用RC4实现,但如果我能找到本机支持的东西,我想我可以节省很多不必要的代码.

php security encryption cryptography encryption-symmetric

211
推荐指数
5
解决办法
26万
查看次数

你如何加密和解密PHP字符串?

我的意思是:

Original String + Salt or Key --> Encrypted String
Encrypted String + Salt or Key --> Decrypted (Original String)
Run Code Online (Sandbox Code Playgroud)

也许是这样的:

"hello world!" + "ABCD1234" --> Encrypt --> "2a2ffa8f13220befbe30819047e23b2c" (may be, for e.g)
"2a2ffa8f13220befbe30819047e23b2c" --> Decrypt with "ABCD1234" --> "hello world!"
Run Code Online (Sandbox Code Playgroud)
  • 在PHP中,你怎么能这样做?

尝试使用Crypt_Blowfish,但它对我不起作用.

php security encryption cryptography encryption-symmetric

211
推荐指数
8
解决办法
43万
查看次数

如何在php中加密/解密数据?

我现在是一名学生,我正在学习PHP,我正在尝试在PHP中对数据进行简单的加密/解密.我做了一些在线研究,其中一些很混乱(至少对我而言).

这是我正在尝试做的事情:

我有一个由这些字段组成的表(UserID,Fname,Lname,Email,Password)

我想要的是加密所有字段然后解密(是否可以sha256用于加密/解密,如果不是任何加密算法)

我想要学习的另一件事是如何创造一种hash(sha256)与良好"盐"相结合的方式.(基本上我只是希望有一个简单的加密/解密实现,hash(sha256)+salt) 先生/女士,你的答案会有很大的帮助,非常感谢.谢谢++

php security encryption cryptography encryption-symmetric

108
推荐指数
5
解决办法
17万
查看次数

PHP AES加密/解密

我在PHP中找到了en/decode字符串的示例.起初它看起来非常好,但它不会工作:-(

有谁知道问题是什么?

$Pass = "Passwort";
$Clear = "Klartext";

$crypted = fnEncrypt($Clear, $Pass);
echo "Encrypted: ".$crypted."</br>";

$newClear = fnDecrypt($crypted, $Pass);
echo "Decrypted: ".$newClear."</br>";

function fnEncrypt($sValue, $sSecretKey) {
    return trim(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $sSecretKey, $sDecrypted, MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND))));
}

function fnDecrypt($sValue, $sSecretKey) {
    return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $sSecretKey, base64_decode($sEncrypted), MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND)));
}
Run Code Online (Sandbox Code Playgroud)

结果是:

加密: boKRNTYYNp7AiOvY1CidqsAn9wX4ufz/D9XrpjAOPk8=

解密: —‚(ÑÁ ^ yË~F'¸®Ó–í œð2Á_B‰Â—

php encryption cryptography aes encryption-symmetric

46
推荐指数
6
解决办法
20万
查看次数

Rijndael和AES之间的差异

我正在调查加密算法 - 有人可以快速了解Rijndael和AES之间的差异吗?

security encryption encryption-symmetric

36
推荐指数
3
解决办法
4万
查看次数

整数的对称双射算法

我需要一种能够将32位有符号整数与另一个32位有符号整数进行一对一映射(即无冲突)的算法.

我真正关心的是足够的熵,因此函数的输出似乎是随机的.基本上我正在寻找类似于XOR Cipher的密码,但它可以生成更多任意外观的输出.虽然默默无闻,但安全并不是我真正关心的问题.

编辑以便澄清:

  1. 算法必须是对称的,这样我就可以在没有密钥对的情况下反转操作.
  2. 该算法必须是双射的,每个32位输入数必须生成一个32位唯一编号.
  3. 函数的输出必须足够模糊,只在输入中添加一个应该对输出产生很大影响.

预期结果示例:

F(100)= 98456
F(101)= -758F
(102)= 10875498
F(103)= 986541
F(104)= 945451245
F(105)= -488554

就像MD5一样,改变一件事可能会改变很多事情.

我正在寻找一个数学函数,所以手动映射整数不是我的解决方案.对于那些提出要求的人来说,算法速度并不是很重要.

algorithm encryption-symmetric bijection block-cipher

32
推荐指数
5
解决办法
5128
查看次数

使用C#和SymmetricAlgorithm进行真正简单的加密

我正在寻找一种非常简单的crypt/decrypt方法.我将始终使用相同的静态密钥.我知道这种方法的风险.目前我正在使用以下代码,但在加密和删除相同的字符串后,它不会生成相同的结果(字符串中间有一些垃圾).

public static string Crypt(this string text)
{
    string result = null;

    if (!String.IsNullOrEmpty(text))
    {
        byte[] plaintextBytes = Encoding.Unicode.GetBytes(text);

        SymmetricAlgorithm symmetricAlgorithm = DES.Create();
        symmetricAlgorithm.Key = new byte[8] {1, 2, 3, 4, 5, 6, 7, 8};
        using (MemoryStream memoryStream = new MemoryStream())
        {
            using (CryptoStream cryptoStream = new CryptoStream(memoryStream, symmetricAlgorithm.CreateEncryptor(), CryptoStreamMode.Write))
            {
                cryptoStream.Write(plaintextBytes, 0, plaintextBytes.Length);
            }

            result = Encoding.Unicode.GetString(memoryStream.ToArray());
        }
    }

    return result;
}

public static string Decrypt(this string text)
{
    string result = null;

    if (!String.IsNullOrEmpty(text))
    {
        byte[] …
Run Code Online (Sandbox Code Playgroud)

c# encryption des encryption-symmetric

27
推荐指数
3
解决办法
7万
查看次数

PHP中的AES-256加密

我需要一个PHP函数,AES256_encode($dataToEcrypt)加密$data到AES-256,另一个AES256_decode($encryptedData)反过来.有谁知道这个函数应该有什么代码?

php security encryption aes encryption-symmetric

24
推荐指数
3
解决办法
6万
查看次数

Ruby中的简单加密,没有外部宝石

我需要对一些文本字符串进行简单加密.我想创建优惠券代码并使它们看起来很酷,因此随后创建的代码应该看起来非常不同.(除了看起来很酷,猜测代码也不容易.)但我希望能够再次解密它们.因此算法必须是可逆的.

我已经尝试了一些移动位的东西,所以它们看起来有点随机.但是两个后续代码(只有一点不同)当然看起来非常相似.

有什么建议?我想在不使用外部宝石的情况下这样做.

菲利普

ruby encryption encryption-symmetric

22
推荐指数
5
解决办法
3万
查看次数

对称加密(AES):保存IV和Salt以及加密数据是否安全且正确?

在使用对称加密算法(在本例中为AES)加密和解密数据时,我试图理解如何处理和管理启动向量和盐(适用时).

我从不同的SO线程和各种其他网站推断出,IV或盐都不需要保密,只是为了防御密码分析攻击,例如蛮力攻击.考虑到这一点,我认为将伪随机IV与加密数据一起存储是可行的.我问的是我使用的方法是否合适,而且,我是否应该以同样的方式处理我目前的硬编码盐?那就是将它写在IV旁边的内存流中

我的代码:

private const ushort ITERATIONS = 300;
private static readonly byte[] SALT = new byte[] { 0x26, 0xdc, 0xff, 0x00, 0xad, 0xed, 0x7a, 0xee, 0xc5, 0xfe, 0x07, 0xaf, 0x4d, 0x08, 0x22,  0x3c };

private static byte[] CreateKey(string password, int keySize)
{
    DeriveBytes derivedKey = new Rfc2898DeriveBytes(password, SALT, ITERATIONS);
    return derivedKey.GetBytes(keySize >> 3);
}

public static byte[] Encrypt(byte[] data, string password)
{
    byte[] encryptedData = null;
    using (AesCryptoServiceProvider provider = new AesCryptoServiceProvider())
    {
        provider.GenerateIV();
        provider.Key = CreateKey(password, provider.KeySize);
        provider.Mode …
Run Code Online (Sandbox Code Playgroud)

c# encryption cryptography encryption-symmetric

22
推荐指数
2
解决办法
1万
查看次数