标签: salt

如何在openLDAP中启用密码散列(SSHA)

对于我的生活,我似乎无法在任何地方找到这个,如果有人甚至可以给我一个链接,我会非常感激.

我们正试图在openLDAP中启用SSHA哈希.默认情况下,它以明文形式存储密码,我认为这是犯罪行为,但是嘿,我是AD的家伙,所以我知道什么.但是如果您愿意的话,您会认为它们可以让您轻松找到打开哈希所需的信息.你不会选择吗?

passwords hash salt openldap ssha

8
推荐指数
1
解决办法
3万
查看次数

每次加密使用随机盐时,我可以避免每次加密/解密调用的密码重新初始化吗?

编辑

实际上重新初始化密码并不是那么慢.由于迭代计数,创建密钥本身很慢.

此外,迭代计数被忽略,并且从未在加密本身中使用,仅用于密钥生成.根据所选择的算法,JCE api有点误导

原帖

由于Java中的加密技术非常...加密,我正在努力做一些优化.在功能方面,这个类非常有效,我希望它可以作为AES加密使用的一个例子

使用BouncyCastle的AES实现加密和解密数据时出现性能问题(我不比较,这是我测试过的唯一一个实现).实际上这个问题对于我决定使用的任何密码都是通用的.

主要问题是:我可以避免两个密码完全重新初始化每个加密/解密调用吗?它们太贵了

为简单起见,请记住以下代码已删除其异常处理,并进行了大量简化以保持对问题的关注.同步块用于保证线程安全

顺便说一下,欢迎对代码的任何部分进行反馈

谢谢

import java.nio.charset.Charset;
import java.security.SecureRandom;
import java.security.Security;
import java.util.Arrays;

import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.PBEKeySpec;
import javax.crypto.spec.PBEParameterSpec;

import org.bouncycastle.jce.provider.BouncyCastleProvider;

public class AES {

    private static final int ITERATIONS = 120000;
    private static final int SALT_SIZE_IN_BYTES = 8;
    private static final String algorithm = "PBEWithSHA256And128BitAES-CBC-BC";
    private static final byte[] KEY_SALT = "a fixed key salt".getBytes(Charset.forName("UTF-8"));

    private Cipher encryptCipher;
    private Cipher decryptCipher;
    private SecretKey key;
    private RandomGenerator randomGenerator = new …
Run Code Online (Sandbox Code Playgroud)

java performance cryptography aes salt

8
推荐指数
1
解决办法
6465
查看次数

OpenSSL - 密码与盐目的

使用OpenSSL加密文件时,可以使用-pass pass:mySillyPassword,其中mySillyPassword是加密中使用的密码.此外,可以使用盐,其中-salt -s(十六进制字符串)用于指定盐.

为什么有人想要使用密码而不是盐或与盐一起使用?另外,我理解只使用-salt命令会导致OpenSSL生成salt.这比用户定义的盐更好吗?如果OpenSSL随机生成一个salt,那么用户将来如何知道解密文件的盐是什么?

encryption passwords openssl salt

8
推荐指数
2
解决办法
9647
查看次数

密码哈希和腌制 - 这是一个很好的方法吗?

我正在做一些研究或谷歌搜索处理密码散列和盐析的不同方法,并遇到了这个有趣的链接:

http://phix.me/salt/

现在,基本上建议的是创建两个用户函数,一个用于散列,另一个用于检查散列.

盐是伪随机的,但实际上是基于密码(让我感觉不好?).

散列函数也伪随机地"散布"哈希字符串中的盐.

哈希检查功能反转盐洒,然后进行实际的哈希检查.

现在,我知道每个密码哈希的唯一salt =好,但是具有散列密码并创建存储在db函数中的salt的逻辑可能=坏.

我喜欢盐不明显的想法,它也不需要基于一些有希望的一致性值,如用户名,用户ID,出生日期等,但正如我所说,我确实对实现有疑问.

那么,人们对"最佳方法解决方案"的看法和想法是什么?

mysql encryption passwords hash salt

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

在代码而不是数据库中存储salt

已经有几个伟大关于盐的最佳做法的讨论,似乎铺天盖地的建议是生成每个密码不同的盐,并将其存储在旁边数据库中的密码.

但是,如果我正确理解了盐的目的,那就是减少彩虹表攻击会让你受到损害的可能性.因此,我理解通过将其存储在数据库中,最好为每个用户更改它,但是如果盐不在数据库附近怎么办?如果我在代码中存储单个salt值(在Web服务器上将存储在已编译的dll中),如果攻击者以某种方式获得对数据库的访问权限,那么它是否会起到同样的作用?在我看来,它更安全.

asp.net security cryptography salt

7
推荐指数
4
解决办法
2689
查看次数

有人能指点我好的PHP/MySQL盐渍哈希密码实现吗?

在阅读了有关盐密码散列的内容后,我想为管理区域实现一个简单的版本,以便建立一个网站.

如果你有很好的链接代码已经很好地实现了这个想法,如果你能分享,我将不胜感激.

谢谢,

php passwords hash salt

7
推荐指数
1
解决办法
1080
查看次数

PHP中的密码安全性

你认为最安全,最安全的方法是什么?我把这些片段从php.net上删除了.我只是想知道,因为人们发布了他们自己,我只是无法理解为什么有些人是他们的方式......有人可以帮助我,并告诉我更多关于这些?哪个最安全,为什么?

1.

<?php
$hash = md5($salt1.$password.$salt2);
?>
Run Code Online (Sandbox Code Playgroud)

2.

<?php
function eliteEncrypt($string) {
    // Create a salt
    $salt = md5($string."%*4!#$;\.k~'(_@");

    // Hash the string
    $string = md5("$salt$string$salt");

    return $string;
}
?>
Run Code Online (Sandbox Code Playgroud)

3.

<?php
define ('SALT_ONE', 'some_random_123_collection_&$^%_of_stuff');
define ('SALT_TWO', 'another_random_%*!_collection_ANbu_of_stuff');

$password = 'dragon';

function generate_encrypted_password($str) {
$new_pword = '';

if( defined('SALT_ONE') ):
   $new_pword .= md5(SALT_ONE);
endif;

$new_pword .= md5($str);

if( defined('SALT_TWO') ):
   $new_pword .= md5(SALT_TWO);
endif;

return substr($new_pword, strlen($str), 40);
}

echo generate_encrypted_password($password);
?>
Run Code Online (Sandbox Code Playgroud)

4.

<?
function enchsetenev($toencode,$times)
{
    $salt = 's+(_a*'; …
Run Code Online (Sandbox Code Playgroud)

php md5 salt

7
推荐指数
1
解决办法
3752
查看次数

StandardPasswordEncoder最适合在spring security 3.1中使用salting密码?

我想在我正在处理的网站上添加密码salting,我发现Spring Security 3.1有一些新功能可以让它变得非常容易.

我有一个关于StandardPasswordEncoder类的问题.它的运作方式与我的预期略有不同.使用它比编写盐腌自己看起来更简单,但我认为还有一些我不明白的"魔法".

StandardPasswordEncoder似乎为我随机加盐,这很好.但是在将原始密码与编码密码相匹配时......如何在不知道原始盐是什么的情况下才能匹配密码?

根据我的理解,一旦你制作了盐,你就不能回去......所以如果首先有一个随机的盐来生成编码的哈希值......那么StandardPasswordEncoder如何能够在以后匹配密码点?我很迷惑.我不应该得到盐,将盐保存在数据库中,然后供应盐?没有我存储和提供盐值,它怎么能做到这一点?

谢谢你清理混乱.我希望我的问题有道理.

security passwords sha1 salt spring-security

7
推荐指数
1
解决办法
1407
查看次数

盐为安全加密Cocoa的关键?

我正在阅读一本关于如何加密密钥以使您的加密安全的教程,但是无法做很多事情.我对密码学知之甚少,需要一些帮助.我使用commoncrypto来加密文件,并且完成了,除了它不安全的事实...

这就是我所拥有的:

- (NSData *)AES256EncryptWithKey:(NSString *)key
{
   // 'key' should be 32 bytes for AES256, will be null-padded otherwise
   char keyPtr[kCCKeySizeAES256 + 1]; // room for terminator (unused)
   bzero( keyPtr, sizeof( keyPtr ) ); // fill with zeroes (for padding)

    NSLog(@"You are encrypting something...");

   // fetch key data
   [key getCString:keyPtr maxLength:sizeof( keyPtr ) encoding:NSUTF8StringEncoding];

   NSUInteger dataLength = [self length];

   //See the doc: For block ciphers, the output size will always be less than or 
   //equal to the input size plus …
Run Code Online (Sandbox Code Playgroud)

encryption cocoa key aes salt

7
推荐指数
1
解决办法
2499
查看次数

MessageDigest.update(byte [])做什么?

这到底是做什么的?我试着查一下但没找到任何东西.

询问的原因是我想将SALT byte[]合并到一个随后进行散列的值中.所以它应该像这样(伪代码):

MessageDigest.update(SALT);
MessageDigest.update(value);
digestValue = MessageDigest.digest();
// Where SALT, value and digestValue are array bytes, byte[]
Run Code Online (Sandbox Code Playgroud)

这是否同时添加SALTvalue最终摘要,还是应该将两个变量合并为一个然后再合并update一次?

我在任何文件中都找不到答案,任何澄清都将不胜感激.

谢谢,干杯.

java hash android salt message-digest

7
推荐指数
1
解决办法
2353
查看次数