index.ts 832 B

1234567891011121314151617181920212223242526272829
  1. import { PasswordStrength } from "@ente/accounts/constants";
  2. import zxcvbn from "zxcvbn";
  3. export const convertBufferToBase64 = (buffer: Buffer) => {
  4. return buffer.toString("base64");
  5. };
  6. export const convertBase64ToBuffer = (base64: string) => {
  7. return Buffer.from(base64, "base64");
  8. };
  9. export function estimatePasswordStrength(password: string): PasswordStrength {
  10. if (!password) {
  11. return PasswordStrength.WEAK;
  12. }
  13. const zxcvbnResult = zxcvbn(password);
  14. if (zxcvbnResult.score < 2) {
  15. return PasswordStrength.WEAK;
  16. } else if (zxcvbnResult.score < 3) {
  17. return PasswordStrength.MODERATE;
  18. } else {
  19. return PasswordStrength.STRONG;
  20. }
  21. }
  22. export const isWeakPassword = (password: string) => {
  23. return estimatePasswordStrength(password) === PasswordStrength.WEAK;
  24. };