1Authen::Passphrase::LANUMsaenragCeorn(t3rpimb)uted PerlADuotchuemne:n:tPaatsisopnhrase::LANManager(3pm)
2
3
4
6 Authen::Passphrase::LANManager - passphrases using the LAN Manager hash
7 algorithm
8
10 use Authen::Passphrase::LANManager;
11
12 $ppr = Authen::Passphrase::LANManager->new(
13 hash_hex => "855c3697d9979e78ac404c4ba2c66533");
14
15 $ppr = Authen::Passphrase::LANManager->new(
16 passphrase => "passphrase");
17
18 $ppr = Authen::Passphrase::LANManager->from_rfc2307(
19 "{LANMAN}855c3697d9979e78ac404c4ba2c66533");
20
21 $hash = $ppr->hash;
22 $hash_hex = $ppr->hash_hex;
23
24 $ppr0 = $ppr->first_half;
25 $ppr1 = $ppr->second_half;
26
27 if($ppr->match($passphrase)) { ...
28
29 $userPassword = $ppr->as_rfc2307;
30
32 An object of this class encapsulates a passphrase hashed using the
33 Microsoft LAN Manager hash function. This is a subclass of
34 Authen::Passphrase, and this document assumes that the reader is
35 familiar with the documentation for that class.
36
37 The hash algorithm can be used on up to fourteen Latin-1 characters of
38 passphrase. First the passphrase is folded to uppercase, and zero-
39 padded to fourteen bytes. Then it is split into two halves. Each
40 seven-byte half is used as a 56-bit DES key, to encrypt the fixed
41 plaintext block "KGS!@#$%". The eight-byte ciphertexts are
42 concatenated to form the sixteen-byte hash. There is no salt.
43
44 Because the two halves of the passphrase are hashed separately, it is
45 possible to manipulate (e.g., crack) a half hash in isolation. See
46 Authen::Passphrase::LANManagerHalf.
47
48 Warning: Don't even think about using this seriously. It's an
49 exceptionally weak design, flawed in pretty much every respect.
50
52 Authen::Passphrase::LANManager->new(ATTR => VALUE, ...)
53 Generates a new passphrase recogniser object using the LAN Manager
54 hash algorithm. The following attributes may be given:
55
56 hash
57 The hash, as a string of 16 bytes.
58
59 hash_hex
60 The hash, as a string of 32 hexadecimal digits.
61
62 passphrase
63 A passphrase that will be accepted.
64
65 Either the hash or the passphrase must be given.
66
67 Authen::Passphrase::LANManager->from_rfc2307(USERPASSWORD)
68 Generates a LAN Manager passphrase recogniser from the supplied
69 RFC2307 encoding. The string must consist of "{LANMAN}" (or its
70 synonym "{LANM}") followed by the hash in hexadecimal; case is
71 ignored.
72
74 $ppr->hash
75 Returns the hash value, as a string of 16 bytes.
76
77 $ppr->hash_hex
78 Returns the hash value, as a string of 32 hexadecimal digits.
79
80 $ppr->first_half
81 Returns the hash of the first half of the passphrase, as an
82 Authen::Passphrase::LANManagerHalf passphrase recogniser.
83
84 $ppr->second_half
85 Returns the hash of the second half of the passphrase, as an
86 Authen::Passphrase::LANManagerHalf passphrase recogniser.
87
88 $ppr->match(PASSPHRASE)
89 $ppr->as_rfc2307
90 These methods are part of the standard Authen::Passphrase
91 interface.
92
94 Authen::Passphrase, Authen::Passphrase::LANManagerHalf, Crypt::DES
95
97 Andrew Main (Zefram) <zefram@fysh.org>
98
100 Copyright (C) 2006, 2007, 2009, 2010, 2012 Andrew Main (Zefram)
101 <zefram@fysh.org>
102
104 This module is free software; you can redistribute it and/or modify it
105 under the same terms as Perl itself.
106
107
108
109perl v5.38.0 2023-07-20Authen::Passphrase::LANManager(3pm)