2017-06-23 15 views
0

react-native-bcryptlink)は、次の警告をスローします。 react-native-cryptolink)使用react-native-bcrypt:Secure PRNG

Using Math.random is not cryptographically secure! Use bcrypt.setRandomFallback to set a PRNG. 

は、潜在的な解決策であるが、1つのプロジェクトをnodifyする必要があるため、過度に複雑に感じています。 bcryptで設定できるPRNGが簡単ですか?

答えて

1

あなたはそうです... react-native-bcryptは、現行のlibsの中ではあまり悪ではありません。

警告を修正するには、代替ランダムジェネレータライブラリを用意するだけです。下の例では、isaac.jsを使用しました。

import bcrypt from "react-native-bcrypt"; 
 
import isaac from "isaac"; 
 

 
bcrypt.setRandomFallback((len) => { 
 
\t const buf = new Uint8Array(len); 
 

 
\t return buf.map(() => Math.floor(isaac.random() * 256)); 
 
}); 
 

 
const hash = bcrypt.hashSync(...) 
 

 
...

+0

ありがとうございます!私はまだMath.random()についての警告は安全ではないが、今は一度しか見ない。 –

+0

私はあなたがその警告を決して見るべきではないと信じています。 setRandomFallback()を設定する前にハッシュをトリガーしたことがあります。 ところで、Uint8Array.mapは古いバージョンのreactと互換性がないように見えるので注意してください。ループを使用して、バッファ内に生成されたランダムな値を設定することができます。 – kbaylosis

+0

それは私の理解ではありましたが、なぜ私はまだ警告を受けるのか理解できないようです。チェックインをしたかっただけです。マップについてのおかげでありがとう。これを避けるために 'Uint8Array.prototype.map = Array.prototype.map'の設定が既にあります。これを難しい方法で見つけなければならなかった:) –

関連する問題