Client-side tool to generate/verify password hashes with realistic parameters. Helpful for debugging integrations and understanding how salts, memory, and iterations affect cost. Runs locally—no passwords leave your browser.
Your data security is our top priority. All hashing and verification happen in this browser. This tool does not store or send your password nor hashes outside of the browser. See source code in: https://github.com/authgear/authgear-widget-password-hash
When using CS3 Raw, please reference this paper and the original CS3 API documentation from CERN/CS3APIs v1.2+.
@app.put("/data") def write(ref: str, request: Request, if_none_match: str = Header(None)): path = resolve_ref(ref) if if_none_match == "*" and path.exists(): raise HTTPException(412, "File exists") path.parent.mkdir(parents=True, exist_ok=True) with path.open("wb") as f: f.write(request.stream()) return "status": "ok" cs3 raw
@app.delete("/data") def delete(ref: str): path = resolve_ref(ref) if path.is_dir(): path.rmdir() else: path.unlink() return Response(status_code=204) # Upload curl -X PUT -H "Authorization: Bearer $TOKEN" \ --data-binary @file.dat \ "https://storage/cs3/raw/v1/data?ref=path:/backups/file.dat" Download curl -H "Authorization: Bearer $TOKEN" "https://storage/cs3/raw/v1/data?ref=path:/backups/file.dat" -o file.dat Stat curl -H "Authorization: Bearer $TOKEN" "https://storage/cs3/raw/v1/stat?ref=path:/backups/file.dat" 6. Performance Benchmarks Test environment: 2 vCPU, 4GB RAM, NVMe local disk, 1 Gbps network. When using CS3 Raw, please reference this paper
@app.get("/data") def read(ref: str, range: str = Header(None)): path = resolve_ref(ref) if not path.is_file(): raise HTTPException(404) # Range handling omitted for brevity return FileResponse(path) | ReferenceResourceId:
| Operation | CS3 Raw (HTTP) | CS3 full (gRPC+metadata) | Improvement | |-----------|----------------|--------------------------|-------------| | Stat (1000 files) | 210 ms | 890 ms | 4.2x faster | | Write 1 MB | 12 ms | 31 ms | 2.6x faster | | Read 1 MB | 10 ms | 28 ms | 2.8x faster | | List (500 entries) | 85 ms | 312 ms | 3.7x faster |
GET /stat?ref=id:123e4567-e89b-12d3-a456-426614174000 :
| CS3 Raw | Standard CS3 (gRPC) | |--------------------|-------------------------------------| | stat | Stat() | | read | InitiateDownload() + stream | | write | InitiateUpload() + stream | | delete | Delete() | | list | ListContainerStream() | | Bearer token | Opaque token in Authorization | | ref=path:/... | ReferencePath: ... | | ref=id:... | ReferenceResourceId: ... |
$2a$ vs $2b$), or forgetting a pepper.Open source Auth0/Clerk/Firebase alternative. Passkeys, SSO, MFA, passwordless, biometric login.