반응 형 프로그래밍에서 다이빙을 시도하고 있습니다. 그래서 나는 베이컨 자바 스크립트 라이브러리를 사용하여 RSA 암호화로 간단한 대화를 만들기로 결정했다.Bacon.js로 임의 번호 스트림
내가 가지고있는 질문 : Bacon으로 임의의 번호를 만드는 가장 좋은 방법은 무엇입니까? 나는 임의의 수 스트림을 임의의 소수 스트림으로 필터링하려고합니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까?
반응 형 프로그래밍에서 다이빙을 시도하고 있습니다. 그래서 나는 베이컨 자바 스크립트 라이브러리를 사용하여 RSA 암호화로 간단한 대화를 만들기로 결정했다.Bacon.js로 임의 번호 스트림
내가 가지고있는 질문 : Bacon으로 임의의 번호를 만드는 가장 좋은 방법은 무엇입니까? 나는 임의의 수 스트림을 임의의 소수 스트림으로 필터링하려고합니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까?
저는 베이컨 스트림이이 용도로 사용하는 것이 옳지는 않지만 여기에서 어떻게 할 수 있는지 알려드립니다.
function makeRandomNumber() {
return Math.random();
}
function makeRandomStream() {
return Bacon.fromBinder(function(sink) {
while(sink(makeRandomNumber()) === Bacon.more) {}
return function() {};
});
}
// example of using the random stream
makeRandomStream().filter(function(x) {
return x > 0.5;
}).take(5).onValue(function(x) {
console.log('random number', x);
});
makeRandomStream()은 매번 새로운 Bacon 스트림을 반환합니다. 동일한 난수 스트림에 여러 구독자를 연결하지 않으려면 여러 위치에서 동일한 난수를 다시 사용할 수 있습니다. 또한 항상 난수 스트림으로부터 동 기적으로 가입을 취소해야합니다. 먼저 다른 스트림과 결합하려고하지 마십시오. 그렇지 않으면 임의의 숫자 스트림이 무제한 임의의 숫자를 생성하므로 나머지 코드가 실행되지 않도록 차단합니다.
그리고 암호 용도로는 Math.random
대신 window.crypto.getRandomValues
을 사용하고 싶을 것입니다.
이 스트림을 다른 스트림과 매핑하여 얻은 일부 스트림을 결합하려고하면 어떻게 될까요? – gyzerok
gyzerok : 구체적인 예를 들어, 아마도 jsFiddle이 있다면 도움이 될 것입니다. 이 스트림에 대한 구체적인 유스 케이스를 찾는 데 문제가 있습니다. – OlliM
https://github.com/gyzerok/reactive-cryptochat/blob/master/rsa.js 저는이 스트림을 사용하여 내 rsa 채팅 응용 프로그램의 e, d 및 m 값을 생성합니다. 도와 주셔서 감사합니다. – gyzerok