12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- extends layout
- block content
- p.
- Bla bla bla qui devi scegliere una buona password
- cosa puoi provare:
- li cia0Antaniqwer10102018
- li Tr0ub4dour&3
- br
- #app(v-cloak)
- form(action='/vpn')
- input(
- type='password',
- v-model='password',
- @input='checkStrength'
- :class="['score' + estimationScore]"
- )
- button(:disabled="estimationScore!==4") ➜
- p(v-if='password.length>2').
- Questa password è {{score[estimationScore]}}, dopo un sequestro uno bravo
- ci mette più o meno <b>{{slowCrackTime}}</b> a scoprirla,
- la CIA circa <b>{{fastCrackTime}}</b>:
-
- li(v-for="s in sequence")
- span(v-if="s.pattern=='bruteforce'") {{s.token}} forza bruta
- span(v-else-if="s.pattern=='dictionary'").
- {{s.token}} dizionario: {{s.dictionary_name}}
- {{s.reversed?'(invertita ' + s.matched_word + ')':''}}
- {{s.l33t?'(con sostituzione ' + s.sub_display +')':''}}
- {{s.uppercase_variations>1?'(con maiuscola)':''}}
- span(v-else-if="s.pattern=='sequence'") {{s.token}} sequenze: ({{s.sequence_name}})
- span(v-else-if="s.pattern=='spatial'") {{s.token}} sequenze spaziali: ({{s.graph}})
- span(v-else-if="s.pattern=='repeat'") {{s.token}} ripetizione: ({{s.base_token}})
- span(v-else-if="s.pattern=='date'") {{s.token}} data {{s.day}}/{{s.month}}/{{s.year}}
- span(v-else-if="s.pattern=='regex'") {{s.token}} pattern {{s.regex_name}}
- span(v-else) {{s}}
- script(src='/js/vue.min.js')
- script(src='/js/zxcvbn.js')
- script(src='/js/moment.js')
- script.
- moment.locale('it');
- var app = new Vue({
- el: '#app',
- data: {
- password: '',
- estimationScore: 0,
- score: ['inutile', 'pessima', 'brutta', 'così così', 'buona'],
- scoreColor: 'red',
- slowCrackTime: '',
- fastCrackTime: '',
- sequence: [],
- },
- methods: {
- checkStrength (e) {
- var estimation = zxcvbn(this.password, ['diocane', 'dioporco', 'porcodio', 'madonnacane'])
- this.estimationScore = estimation.score;
- this.slowCrackTime = moment.duration(estimation.crack_times_seconds.offline_slow_hashing_1e4_per_second, 'seconds').humanize();
- this.fastCrackTime = moment.duration(estimation.crack_times_seconds.offline_fast_hashing_1e10_per_second, 'seconds').humanize();
- this.sequence = estimation.sequence;
- },
- }
- })
|