/
DnTyr
/
Password-Development
Обзор
Документация
Войти
/
DnTyr
/
Password-Development
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
frontend/src/components/analyzer/ResultBlock.js
56 строк
1 KB
DT
first_commit
03 июн 2026, 10:22
03 июн 2026, 10:22
357cb35
Код
Авторство
О чём код?
import StrengthBar from "./StrengthBar"; import { useTranslation } from "react-i18next"; import { formatCrackTime } from "../../utils/passwordUtils"; import { getColor, calculateCrackTimeSeconds, getStrengthByTime } from "../../utils/passwordUtils"; function ResultBlock({ result }) { const { t } = useTranslation(); const entropy = Number(result?.entropy) || 0; const seconds = calculateCrackTimeSeconds(entropy); const strength = getStrengthByTime(seconds); const filteredRecommendations = (result?.recommendations || []).filter( (rec) => !rec.toLowerCase().includes("rockyou") && !rec.toLowerCase().includes("утечках") ); return ( <div className="result"> <StrengthBar entropy={entropy} strength={strength} /> <p> {t("Уровень защиты")}:{" "} <span style={{ color: getColor(strength), fontWeight: "bold" }}> {t(strength)} </span> </p> <p> {t("Энтропия")}: {entropy} {t("бит")} </p> <p> {t("Время взлома")}:{" "} <b>{formatCrackTime(seconds, t)}</b> </p> {filteredRecommendations.length > 0 && ( <ul style={{ marginTop: "10px" }}> {filteredRecommendations.map((r, i) => ( <li key={i}>{t(r)}</li> ))} </ul> )} </div> ); } export default ResultBlock;