标签: sha1

可以通过加密cookie值的强力来找到validationKey和decryptionKey吗?

我使用以下代码生成加密令牌:

var ticket = new System.Web.Security.FormsAuthenticationTicket(
    2, 
    "", 
    DateTime.Now, 
    DateTime.Now.AddMinutes(10), 
    false, 
    "user id here");
var cipherText = System.Web.Security.FormsAuthentication.Encrypt(ticket);
Run Code Online (Sandbox Code Playgroud)

此代码使用app/web.config中指定的密钥和算法:

<system.web>
    <machineKey validationKey="SOME KEY" 
                decryptionKey="SOME OTHER KEY" 
                validation="SHA1" />
</system.web>
Run Code Online (Sandbox Code Playgroud)

现在假设我将生成的密文发送给合作伙伴.他是否有能力强暴:

  1. 存储在密码中的值(用户ID不代表敏感信息,不会打扰我)
  2. 用于创建密码的validationKey和decryptionKey的值(这将是灾难性的,因为他将能够生成令牌并模仿任何用户)

我想这两个问题的答案都是肯定的,但是他的机会有多现实,你认为给他密码会对我的系统构成安全威胁吗?在此先感谢您的回复.

.net cryptography sha1 brute-force

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

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

将SHA1转换为普通形式

我有一个数据库,每个密码都通过SHA1传递.有时,我想转到用户仪表板,看看它的感觉.有没有办法,我可以将SHA1转换为普通形式仅用于测试目的?

谢谢

php passwords sha1

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

在哈希创建唯一ID之前连接或"xor"键?

我想为设备创建一个唯一的id,所以我决定创建SHA1(mac XOR时间戳XOR user_password).有没有与此相关的安全问题?做SHA1(mac CONCATENATE timestamp CONCATENATE user_password)会更好吗?

谢谢

security hash sha1 xor

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

Perl Data :: UUID是一个强大的对称密钥源吗?

我正在考虑使用Data :: UUID Perl模块生成256位对称密钥,以便与HMAC_SHA256算法一起使用.每个调用应该给我一个128位的唯一字符串,所以我想做类似以下的事情:

use Data::UUID;

my $ug = new Data::UUID;

my $uuid1 = $ug->to_hexstring($ug->create());

my $uuid2 = $ug->to_hexstring($ug->create());

my $256_bit_key = $uuid1 . $uuid2;

这个密钥密码强吗?

perl uuid sha1 key hmac

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

什么是255的SHA-1?

假设您有一个sha-1算法,它接受文本作为输入而不是字节数组.(例如,有一些像这样的Javascript库).

如果要将sha-1应用于文本(假设文本是密码),则首先执行utf-8编码,因为文本可以包含多字节字符.换句话说,文本中字符的相应整数值可以大于8位字节可以容纳的值.由于sha-1算法适用于8位单元,因此有助于首先在utf-8中对文本进行编码.

我的问题是这样的:当你有一个非文本的二进制数据,其中每个字节的值是0和255之间,你仍然应该做的二进制数据UTF-8编码,你把它传递给了SHA-1算法之前?我知道当值介于0和127之间时,utf-8根本不会修改数据.

但是,如果值介于128和255之间,则UTF-8会修改此类数据.

总之,这是我的问题:包含值255(全1)的字节的SHA-1是什么?

With UTF-8 encoding:    730cf30d408ecf51aad876f5c491f837f7ddea4c

Without UTF-8 encoding: 85e53271e14006f0265921d02d4d736cdc580b0b
Run Code Online (Sandbox Code Playgroud)

哪一个是正确的?

sha1 utf-8

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

Python vs Go Hashing差异

我有一个Go程序

package main

import (
    "crypto/hmac"
    "crypto/sha1"
    "fmt"
)

func main() {
    val := []byte("nJ1m4Cc3")
    hasher := hmac.New(sha1.New, val)
    fmt.Printf("%x\n", hasher.Sum(nil))
    // f7c0aebfb7db2c15f1945a6b7b5286d173df894d
}
Run Code Online (Sandbox Code Playgroud)

和Python(2.7)程序试图重现Go代码(使用crypto/hmac)

import hashlib
val =  u'nJ1m4Cc3'
hasher = hashlib.new("sha1", val)
print hasher.hexdigest()
# d67c1f445987c52bceb8d6475c30a8b0e9a3365d
Run Code Online (Sandbox Code Playgroud)

使用该hmac模块给出了不同的结果,但仍然与Go代码不同.

import hmac
val = 'nJ1m4Cc3'
h = hmac.new("sha1", val)
print h.hexdigest()
# d34435851209e463deeeb40cba7b75ef
Run Code Online (Sandbox Code Playgroud)

为什么这些在同一输入上使用相同的哈希时会打印不同的值?

python hash cryptography sha1 go

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

haskell中的SHA-1产生错误的哈希值

我编写了一个在haskell中执行SHA-1的程序,虽然它确实产生了哈希,但它们与其他SHA-1程序产生的哈希不匹配

示例:cat hashes to:b5be86bc8bccfc24b01b093228ebb96fc92fa804但应该哈希到9d989e8d27dc9e0ec3389fc855f142c3d40f0c50

我的代码是:

(old code omitted)
Run Code Online (Sandbox Code Playgroud)

我不知道出了什么问题.有人能告诉我哪里弄错了吗?

编辑: 我修复了指出的东西,但它仍然无法正常工作.它正常工作直到内循环.我清理了代码,以便为内循环的功能都可以f1,f2f3 cat现在有趣的哈希来ebe6c9fa1afa0ef5a0ca80bab251fd41cc29127e.

码:

import Data.Word
import Data.Bits
import Data.Char (ord, intToDigit)
import Data.Binary (encode, decode)
import Numeric (showHex, showIntAtBase)
import System.IO (stdin)
import Data.Sequence ((<|), (|>))
import qualified Data.Sequence as S
import qualified Data.ByteString.Lazy as B
type Quintuple32 = (Word32, Word32, Word32, Word32, Word32)

addQuintuple (a, b, c, d, e) (f, g, h, i, j) =
    (a + …
Run Code Online (Sandbox Code Playgroud)

hash haskell sha1

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

在.NET Core中使用SHA-1

我在dotnet核心中散列字符串时得到奇怪的结果我发现了类似的问题:用ASP.NET Core计算SHA1 并找到了如何在.net核心中将字节数组转换为字符串

这是我的代码:

private static string CalculateSha1(string text)
{
    var enc = Encoding.GetEncoding(65001); // utf-8 code page
    byte[] buffer = enc.GetBytes(text);

    var sha1 = System.Security.Cryptography.SHA1.Create();

    var hash = sha1.ComputeHash(buffer);

    return enc.GetString(hash);
}
Run Code Online (Sandbox Code Playgroud)

这是我的考验:

string test = "broodjepoep"; // forgive me

string shouldBe = "b2bc870e4ddf0e15486effd19026def2c8a54753"; // according to http://www.sha1-online.com/

string wouldBe = CalculateSha1(test);

System.Diagnostics.Debug.Assert(shouldBe.Equals(wouldBe));
Run Code Online (Sandbox Code Playgroud)

输出:

MHnѐ&ȥGS

在此输入图像描述

我安装了nuget包System.Security.Cryptography.Algorithms(v 4.3.0)

还试图GetEncoding(0)获得sys默认编码.也没工作.

c# cryptography sha1 .net-core asp.net-core

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

"SHA1withRSA"的细节是什么?

无辜地,我认为"SHA1withRSA算法"只是用"SHA1"操作plainText,并使用RSA/pkcs1padding来加密"SHA1"的结果.但是,我发现我错了,直到我写了一些java代码来测试我的想法.我使用RSA publickey来解密签名,我使用相应的私钥来签署"SHA1withRSA算法".但我发现结果不等于"SHA1(plainText)",下面是我的java代码:

    String plaintext= "123456";
    Signature signature=Signature.getInstance("SHA1withRSA",new BouncyCastleProvider());
    signature.initSign(pemPrivatekey);
    signature.update(plaintext.getBytes());
    byte[] sign = signature.sign();
    //RSA decode
    byte[] bytes = RsaCipher.decryptByRsa(sign, pemPublickey);
    String rsaDecodeHex=Hex.toHexString(bytes);
    System.out.println(rsaDecodeHex.toLowerCase());

    String sha1Hex = Hash.getSha1(plaintext.getBytes());
    System.out.println(sha1Hex);
    //rsaDecodeHex!=sha1Hex
Run Code Online (Sandbox Code Playgroud)

很容易找到rsaDecodeHex!=sha1Hex,在哪里

rsaDecodeHex = 3021300906052b0e03021a050004147c4a8d09ca3762af61e59520943dc26494f8941b

sha1Hex = 7c4a8d09ca3762af61e59520943dc26494f8941b.

那么,"SHA1withRSA"的细节是什么?

java encryption sha1 rsa digital-signature

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