bbfromgb
New member
- Local time
- Today, 02:41
- Joined
- Dec 22, 2024
- Messages
- 14
Hi Jason,Please test; should be 32 & 64 bit compliant……
Will not be doing this again anytime soon……
Thank you for providing a 32bit-compatible version, works like expected.
Hi Jason,Please test; should be 32 & 64 bit compliant……
Will not be doing this again anytime soon……
Thanks for letting me know; my brain is fried.. Copilot has had a rough ride too lolHi Jason,
Thank you for providing a 32bit-compatible version, works like expected.
V2.52 Update:
Primary Functionality
This module powers a password input form that:
1. Evaluates Password Strength
• Checks for:
• Length (10–20 characters)
• Repeated/sequenced characters
• At least 2 numbers, 2 uppercase, 2 lowercase, and 1 special character
• Whether the password is common (e.g., "password", "admin")
2. Scores and Visualizes Strength
• Uses a scoring system (0–100) based on rule compliance
• Displays one of six images to represent strength
• Updates rule labels with ✓ or ✗ and color-coded feedback
3. Hashes Passwords
• Supports SHA-1 and SHA-256
• Implements SHA-1 and SHA-256 manually in VBA (no external libraries)
4. Checks for Breaches via HIBP
• Converts SHA-256 to SHA-1 if needed
• Calls the HaveIBeenPwned API using the k-anonymity model
• Displays breach count or confirmation of safety
5. Polishes UX
• Toggle password visibility
• Double-click to clear field and reset UI
• Dynamic font fallback for rule labels
• Real-time feedback on password changes
Security Awareness
• Integrates HIBP breach checking
• Encourages strong password practices
• Avoids sending full hashes (uses prefix model)
User-Centric UX
• Immediate feedback on password quality
• Visual indicators (images, color-coded labels)
• Conditional prompts (e.g., SHA-256 to SHA-1 conversion)
• Cursor placement and input masking handled gracefully
Robust Error Handling
• used consistently
• Debug logging throughout for diagnostics
• Graceful fallback behavior (e.g., font selection, control existence)
Custom Cryptographic Implementation
• Implements SHA-1 and SHA-256 from scratch
• Handles bitwise rotation and 32-bit wrapping manually
• Demonstrates deep understanding of hashing internals
@Jason Lee Hayes
I would like to download v2.52 and 2.53 for testing, but unless I'm being very dense, you haven't uploaded the files here (screenshots only)
Why is the password length limited to 20 characters? That's too short in my opinion.
Lol, i'm done now.. honestI will wait for version 3.50![]()
Gustav Brock has a cryptology module for Access using bcript.dll and Kernel32.dll which I believe is available on all modern versions Windows. The only reference you need is Microsoft ActiveX Data Objects 6.1 Library.
(c) Gustav Brock, Cactus Data ApS, CPH
https://github.com/GustavBrock/VBA.Cryptography
License for this module is MIT, see
![]()
VBA.Cryptography/LICENSE at main · GustavBrock/VBA.Cryptography
Contribute to GustavBrock/VBA.Cryptography development by creating an account on GitHub.github.com
I have been using a variant of that module converted to a class for about 6 months.
Using a DLL can simplify the implementation, but my solution deliberately avoids external dependencies. All encryption and hashing routines are implemented in native VBA, with no reliance on external DLLs, COM objects, or the .NET Framework. This makes the system fully self‑contained and deployable in restricted environments where external libraries cannot be registered or where .NET is unavailable.
A pure‑VBA approach offers several technical advantages:
• Zero external dependencies:
The code runs on any standard Office installation without requiring admin rights, DLL registration, or additional runtime components.
• High portability:
Because everything is embedded directly in the VBA project, the cryptographic routines travel with the database or workbook. This is ideal for distributed Access applications or locked‑down corporate environments.
• Predictable execution environment:
DLL‑based solutions depend on OS‑level architecture (32‑bit vs 64‑bit), versioning, and registry entries. Pure VBA avoids these compatibility issues entirely.
• Security through controlled surface area:
Eliminating external binaries reduces the attack surface. There’s no risk of DLL hijacking, version mismatch, or tampering with external components.
• Easier maintenance and auditing:
All logic is visible, editable, and reviewable directly in the VBA editor. No black‑box binaries, no unmanaged code, and no dependency chain to track.
• Ideal for sandboxed or restricted deployments:
Many enterprise environments block DLL calls or disable .NET interop for security reasons. Pure VBA continues to function even under these constraints.
In short, while DLLs can offer performance benefits, a pure‑VBA cryptography stack provides maximum portability, compatibility, and deployment flexibility—especially when you have no control over the target environment.
FIPS186 DSA RNG has been deprecated since February 2023 for general random number generation and should not be used. Instead the ECDSA (Elliptic Curve Digital Signature Algorithm) should be used...Just looked at the link and the code provided
Be careful here if using this in a real security environment.
BCryptGenerateSymmetricKey(Algorithm, Key, KeyObject(0), ...)
This means Enc and Dec may use different key object memory alignment and can cause intermittent failures thus undefined behaviors on different OS's
Also, the code does not enforce AES key length requirement - Must be 128Bit minimum but the code accepts any byte array!
EG: Key = "ABC" windows WILL accept it, pad or truncate it and produce a weak key which is a real security risk!
I'm very surprised this has not been flagged.
Another observation: CBC mode is being used without authentication?
CBC & no MAC is venerable to padding oracle attacks, cyphertext manipulation and silent corruption.
FIPS186 DSA RNG has been deprecated since February 2023 for general random number generation and should not be used. Instead the ECDSA (Elliptic Curve Digital Signature Algorithm) should be used...