From 8fa586731a67eb658be5b0f2ff5edeca523b7e62 Mon Sep 17 00:00:00 2001
From: ale
Date: Mon, 8 Dec 2025 21:06:35 +0100
Subject: [PATCH 1/5] out bcrypt
Signed-off-by: ale
---
API.md | 1 -
CHANGELOG.md | 3 +--
PROJECT_SUMMARY.md | 4 +---
QUICK_REFERENCE.md | 1 -
README.md | 3 +--
app/api/search/route.ts | 8 ++------
app/layout.tsx | 8 ++++----
app/page.tsx | 8 ++------
lib/elasticsearch.ts | 3 ---
lib/hash.ts | 23 +----------------------
package.json | 2 --
public/manifest.json | 2 +-
scripts/index-file.ts | 17 +++++------------
13 files changed, 18 insertions(+), 65 deletions(-)
diff --git a/API.md b/API.md
index 1f85a01..90c650e 100644
--- a/API.md
+++ b/API.md
@@ -179,7 +179,6 @@ The API automatically detects hash types based on length and format:
| SHA1 | 40 | `^[a-f0-9]{40}$` |
| SHA256 | 64 | `^[a-f0-9]{64}$` |
| SHA512 | 128 | `^[a-f0-9]{128}$` |
-| Bcrypt | 60 | `^\$2[abxy]\$` |
Hashes are case-insensitive.
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 865cb0c..7b2b868 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,12 +10,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added
#### Core Features
-- Hash search functionality for MD5, SHA1, SHA256, SHA512, and Bcrypt
+- Hash search functionality for MD5, SHA1, SHA256, and SHA512
- Hash generation from plaintext input
- Automatic detection of hash types based on length and pattern
- Real-time hash generation with instant results
- Copy to clipboard functionality for all hash values
-- Bcrypt verification support
#### Backend
- Elasticsearch integration with configurable endpoint
diff --git a/PROJECT_SUMMARY.md b/PROJECT_SUMMARY.md
index 670e903..35025be 100644
--- a/PROJECT_SUMMARY.md
+++ b/PROJECT_SUMMARY.md
@@ -13,7 +13,7 @@
## ✨ Key Features
### 🔍 Hash Search
-- Search for MD5, SHA1, SHA256, SHA512, and Bcrypt hashes
+- Search for MD5, SHA1, SHA256, and SHA512 hashes
- Automatic hash type detection
- Case-insensitive matching
- Real-time results
@@ -174,7 +174,6 @@ export ELASTICSEARCH_NODE=http://localhost:9200
| SHA1 | 40 | `^[a-f0-9]{40}$` |
| SHA256 | 64 | `^[a-f0-9]{64}$` |
| SHA512 | 128 | `^[a-f0-9]{128}$` |
-| Bcrypt | 60 | `^\$2[abxy]\$` |
---
@@ -245,7 +244,6 @@ export ELASTICSEARCH_NODE=http://localhost:9200
## 📈 Future Enhancements
### Planned Features
-- Bcrypt hash validation
- Argon2 hash support
- Search history
- Batch lookup
diff --git a/QUICK_REFERENCE.md b/QUICK_REFERENCE.md
index 6b83e89..5be492e 100644
--- a/QUICK_REFERENCE.md
+++ b/QUICK_REFERENCE.md
@@ -25,7 +25,6 @@ npm run index-file -- --help # Show help
| SHA1 | 40 | `5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8` |
| SHA256 | 64 | `5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8` |
| SHA512 | 128 | `b109f3bbbc244eb82441917ed06d618b9008dd09b3befd1b5e07394c706a8bb9...` |
-| Bcrypt | 60 | `$2b$10$N9qo8uLOickgx2ZMRZoMye...` |
## 🔌 API Quick Reference
diff --git a/README.md b/README.md
index 6b20ffc..7d399db 100644
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@ A modern, high-performance hash search and generation tool powered by Elasticsea
## ✨ Features
-- 🔍 **Hash Lookup**: Search for MD5, SHA1, SHA256, SHA512, and Bcrypt hashes
+- 🔍 **Hash Lookup**: Search for MD5, SHA1, SHA256, and SHA512 hashes
- 🔑 **Hash Generation**: Generate multiple hash types from plaintext
- 💾 **Auto-Indexing**: Automatically stores searched plaintext and hashes
- 📊 **Elasticsearch Backend**: Scalable storage with 10 shards for performance
@@ -274,7 +274,6 @@ npm run lint
| SHA1 | 40 | `^[a-f0-9]{40}$` |
| SHA256 | 64 | `^[a-f0-9]{64}$` |
| SHA512 | 128 | `^[a-f0-9]{128}$` |
-| Bcrypt | 60 | `^\$2[abxy]\$` |
## 🚀 Performance
diff --git a/app/api/search/route.ts b/app/api/search/route.ts
index f7e6a4d..e53d805 100644
--- a/app/api/search/route.ts
+++ b/app/api/search/route.ts
@@ -8,7 +8,6 @@ interface HashDocument {
sha1: string;
sha256: string;
sha512: string;
- bcrypt: string;
created_at?: string;
}
@@ -44,7 +43,7 @@ export async function POST(request: NextRequest) {
index: INDEX_NAME,
query: {
term: {
- [hashType]: hashType === 'bcrypt' ? cleanQuery : cleanQueryLower
+ [hashType]: cleanQueryLower
}
}
});
@@ -66,7 +65,6 @@ export async function POST(request: NextRequest) {
sha1: source.sha1,
sha256: source.sha256,
sha512: source.sha512,
- bcrypt: source.bcrypt,
}
};
})
@@ -101,11 +99,10 @@ export async function POST(request: NextRequest) {
sha1: existingDoc.sha1,
sha256: existingDoc.sha256,
sha512: existingDoc.sha512,
- bcrypt: existingDoc.bcrypt,
};
} else {
// Plaintext not found, generate hashes and check if any hash already exists
- hashes = await generateHashes(cleanQuery);
+ hashes = generateHashes(cleanQuery);
const hashExistsResponse = await esClient.search({
index: INDEX_NAME,
@@ -147,7 +144,6 @@ export async function POST(request: NextRequest) {
sha1: hashes.sha1,
sha256: hashes.sha256,
sha512: hashes.sha512,
- bcrypt: hashes.bcrypt,
}
});
}
diff --git a/app/layout.tsx b/app/layout.tsx
index 9b07bc1..d686628 100644
--- a/app/layout.tsx
+++ b/app/layout.tsx
@@ -14,8 +14,8 @@ const geistMono = Geist_Mono({
export const metadata: Metadata = {
title: "Hasher - Hash Search & Generator",
- description: "Search for hashes or generate them from plaintext. Supports MD5, SHA1, SHA256, SHA512, and Bcrypt. Powered by Elasticsearch.",
- keywords: ["hash", "md5", "sha1", "sha256", "sha512", "bcrypt", "hash generator", "hash search", "elasticsearch"],
+ description: "Search for hashes or generate them from plaintext. Supports MD5, SHA1, SHA256, and SHA512. Powered by Elasticsearch.",
+ keywords: ["hash", "md5", "sha1", "sha256", "sha512", "hash generator", "hash search", "elasticsearch"],
authors: [{ name: "Hasher" }],
creator: "Hasher",
publisher: "Hasher",
@@ -28,7 +28,7 @@ export const metadata: Metadata = {
openGraph: {
type: "website",
title: "Hasher - Hash Search & Generator",
- description: "Search for hashes or generate them from plaintext. Supports MD5, SHA1, SHA256, SHA512, and Bcrypt.",
+ description: "Search for hashes or generate them from plaintext. Supports MD5, SHA1, SHA256, and SHA512.",
siteName: "Hasher",
images: [
{
@@ -42,7 +42,7 @@ export const metadata: Metadata = {
twitter: {
card: "summary",
title: "Hasher - Hash Search & Generator",
- description: "Search for hashes or generate them from plaintext. Supports MD5, SHA1, SHA256, SHA512, and Bcrypt.",
+ description: "Search for hashes or generate them from plaintext. Supports MD5, SHA1, SHA256, and SHA512.",
images: ["/logo.png"],
},
viewport: {
diff --git a/app/page.tsx b/app/page.tsx
index cf7cbaa..c8c7704 100644
--- a/app/page.tsx
+++ b/app/page.tsx
@@ -15,7 +15,6 @@ interface SearchResult {
sha1: string;
sha256: string;
sha512: string;
- bcrypt: string;
};
results?: Array<{
plaintext: string;
@@ -24,7 +23,6 @@ interface SearchResult {
sha1: string;
sha256: string;
sha512: string;
- bcrypt: string;
};
}>;
message?: string;
@@ -144,7 +142,7 @@ export default function Home() {
Search for hashes or generate them from plaintext
- Supports MD5, SHA1, SHA256, SHA512, and Bcrypt
+ Supports MD5, SHA1, SHA256, and SHA512
{stats && (
@@ -214,7 +212,6 @@ export default function Home() {
-
{result.wasGenerated && (
@@ -260,7 +257,6 @@ export default function Home() {
-
))}
@@ -304,7 +300,7 @@ export default function Home() {
Generate Hashes
- Enter any plaintext to instantly generate MD5, SHA1, SHA256, SHA512, and Bcrypt hashes. Results are saved automatically.
+ Enter any plaintext to instantly generate MD5, SHA1, SHA256, and SHA512 hashes. Results are saved automatically.