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 {{slowCrackTime}} a scoprirla, la CIA circa {{fastCrackTime}}: 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; }, } })