높은 엔트로피 암호
코드 출현 2017 4일차
1 부
재고 관리 시스템 Redux!
Array
와 Set
만 있으면 length
와 size
를 비교할 수 있습니다! 내 작업 알고리즘 작성
Split the input at each newline character into an array of strings
For each string, accumulate a tally, starting at 0
Split the string at each space character into an array of strings
If the length of the array is the same as the size of a Set generated from that array
Increment the tally by 1, because there are no duplicate phrases
Else
Leave the tally unchanged
Return the tally
JavaScript에서는
reduce()
, split()
, Array.length
, Set.size
및 a ternary operator
를 하나의 긴 체인 문에 사용합니다.input.split('\n')
.reduce((tally, current) => {
return tally += current.split(' ').length
== new Set(current.split(' ')).size
? 1 : 0
}, 0)
2 부
reduce()
RS 이렇게! reduce()
rs 정말 유쾌한 반전입니다!
음... 어떻게 해결해야 할까요?
3개의 reduce() rs, 그 방법입니다!
이것은 매우 빠르게 복잡해 질 것입니다. 그러니 참으세요.
reduce()
reduce()
reduce()
이 애니메이션은 마지막 예제 암호 세트를 사용하여 각
reduce()
rs를 보여줍니다.작동 중인 reduce() rs 공개
이것은 제가 자랑스럽게 약 15분 만에 작성한 JavaScript입니다.
return input
.split('\n')
.reduce((passphrases, passphrase) => {
let letterCounts = passphrase
.split(' ')
.reduce((list, group) => {
let counts = group
.split(' ')
.reduce((tallies, letter) => {
tallies[letter] = (tallies[letter] || 0) + 1
return tallies
}, {})
list.push(
Object.keys(counts)
.sort()
.map(el => el + '|' + counts[el]).join(''))
return list
}, [])
return passphrases += letterCounts.length
== new Set(letterCounts).size
? 1 : 0
}, 0)
해냈어!!
reduce()
를 많이 사용했습니다! reduce()
이 무엇을 하는지 보여주는 상세한 GIF를 만들었습니다! 40
! Reference
이 문제에 관하여(높은 엔트로피 암호), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/rmion/high-entropy-passphrases-3pma텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)