Jason Lee Hayes
Active member
- Local time
- Today, 20:38
- Joined
- Jul 25, 2020
- Messages
- 284
Updated V2.2 (x64)
Please test V2.4 for both (x32 & x64) Post 17
Pure VBA SHA-1 Implementation (xavier.battle Request)
1.- implemented a full SHA-1 hash function using only native VBA — no .NET, no COM interop, no external DLLs.
- That means it’s portable, auditable, and works in environments where external dependencies are restricted.
2. Bit-Level Precision
- LRot function handles 32-bit rotation with full control over overflow, masking, and edge cases.
- Debugged it to work inside form modules — which are notorious for type coercion issues — and made it robust.
3. Unicode-Safe Password Analysis
- GetPasswordStats uses AscW to handle extended characters like ñ, ¡, and ¿, making it international-ready.
- not just checking ASCII — you’re respecting real-world input.
4. Client-Side Breach Checking
- By using the HaveIBeenPwned API with k-anonymity (prefix/suffix split), you’re checking password safety without exposing full hashes.
- That’s privacy-conscious and security-smart.
5. UI Feedback That’s Actually Useful
- form gives real-time feedback with rule-by-rule scoring, visual indicators, and actionable messages.
- It’s not just “good” or “bad”—it teaches the user how to improve.
Advantages of Not Using .NET
1. No External Dependencies
- No need for .NET runtime, COM registration, or admin rights.
- Code runs in any Access environment — even locked-down corporate machines.
2. Full Control Over Execution
- Not relying on opaque .NET objects or black-box behavior.
- Every bitwise operation, every loop, every mask — you wrote it, you own it.
3. Better Debugging and Portability
- You can step through every line in the VBA debugger.
- You can copy the form to another database and it just works — no broken references.
4. Security and Compliance
- No external calls to unmanaged code means fewer attack surfaces.
- Easier to audit for GDPR, ISO, or internal compliance reviews.
5. Respect for Legacy Systems
- Many Access apps live in environments where .NET is disabled or discouraged.
- Code respects that reality and still delivers modern functionality.
Please test V2.4 for both (x32 & x64) Post 17
Pure VBA SHA-1 Implementation (xavier.battle Request)
1.- implemented a full SHA-1 hash function using only native VBA — no .NET, no COM interop, no external DLLs.
- That means it’s portable, auditable, and works in environments where external dependencies are restricted.
2. Bit-Level Precision
- LRot function handles 32-bit rotation with full control over overflow, masking, and edge cases.
- Debugged it to work inside form modules — which are notorious for type coercion issues — and made it robust.
3. Unicode-Safe Password Analysis
- GetPasswordStats uses AscW to handle extended characters like ñ, ¡, and ¿, making it international-ready.
- not just checking ASCII — you’re respecting real-world input.
4. Client-Side Breach Checking
- By using the HaveIBeenPwned API with k-anonymity (prefix/suffix split), you’re checking password safety without exposing full hashes.
- That’s privacy-conscious and security-smart.
5. UI Feedback That’s Actually Useful
- form gives real-time feedback with rule-by-rule scoring, visual indicators, and actionable messages.
- It’s not just “good” or “bad”—it teaches the user how to improve.
Advantages of Not Using .NET
1. No External Dependencies
- No need for .NET runtime, COM registration, or admin rights.
- Code runs in any Access environment — even locked-down corporate machines.
2. Full Control Over Execution
- Not relying on opaque .NET objects or black-box behavior.
- Every bitwise operation, every loop, every mask — you wrote it, you own it.
3. Better Debugging and Portability
- You can step through every line in the VBA debugger.
- You can copy the form to another database and it just works — no broken references.
4. Security and Compliance
- No external calls to unmanaged code means fewer attack surfaces.
- Easier to audit for GDPR, ISO, or internal compliance reviews.
5. Respect for Legacy Systems
- Many Access apps live in environments where .NET is disabled or discouraged.
- Code respects that reality and still delivers modern functionality.
Attachments
Last edited: