#!/usr/bin/perl use 5.010; use Digest::MD5 'md5_hex'; say "CalcWLAN by a.s.r"; die "Uso: $0 \nEjemplo: $0 WLAN_C58D 64:68:0C:C5:C5:90\nEjemplo: $0 wlan_8105 64680c9a8108\n" if @ARGV != 2; ($ESSID, $BSSID) = map { s/://g; uc } @ARGV; # quitar ':' y pasar a mayúsculas die "BSSID incorrecto\n" if $BSSID !~ /^ [0-9A-F]{12} $/x; die "Solo para JAZZTEL_XXXX y WLAN_XXXX\n" if $ESSID !~ /^ (?:JAZZTEL|WLAN) _ (....) $/x; $HEAD = $1; $BSSIDP = substr $BSSID, 0, 8; $KEY = substr md5_hex('bcgbghgg', $BSSIDP, $HEAD, $BSSID), 0, 20; say "La clave es: $KEY";