{
  "schemaVersion": "2026-10-03-v1",
  "sourceReviewedDate": "2026-10-03",
  "profiles": [
    {
      "id": "office-legacy-rc4-md5",
      "family": "Office",
      "profile": "Legacy Office RC4/MD5 (DOC/XLS/PPT)",
      "protection": "Legacy file-opening encryption",
      "servicePath": "Eligible older files may offer an unlocked copy after source verification. Assessment selects the path.",
      "limitations": "The original file is required. An unlocked copy and the original typed password are different results.",
      "evidence": "configured",
      "fixtureIds": [],
      "sourceUrls": [
        "https://hashcat.net/wiki/doku.php?id=example_hashes",
        "https://learn.microsoft.com/en-us/openspecs/office_file_formats/ms-offcrypto/74d60145-a0f0-44be-99ce-c65d211b4eb7"
      ],
      "guidePath": "/articles/unlock-old-office-files"
    },
    {
      "id": "office-legacy-rc4-sha1-40",
      "family": "Office",
      "profile": "Legacy Office RC4/SHA-1, 40-bit",
      "protection": "Legacy file-opening encryption",
      "servicePath": "Submit the original document for assessment and password-search options.",
      "limitations": "This profile is not an unconditional file-unlock guarantee.",
      "evidence": "configured",
      "fixtureIds": [],
      "sourceUrls": [
        "https://hashcat.net/wiki/doku.php?id=example_hashes",
        "https://learn.microsoft.com/en-us/openspecs/office_file_formats/ms-offcrypto/74d60145-a0f0-44be-99ce-c65d211b4eb7"
      ],
      "guidePath": "/articles/unlock-old-office-files"
    },
    {
      "id": "office-legacy-rc4-sha1-128",
      "family": "Office",
      "profile": "Legacy Office RC4/SHA-1, 128-bit",
      "protection": "Legacy file-opening encryption",
      "servicePath": "Submit the original document for assessment and password-search options.",
      "limitations": "Recovery depends on the password and available search. It is outside the 40-bit file-unlock profile.",
      "evidence": "configured",
      "fixtureIds": [],
      "sourceUrls": [
        "https://hashcat.net/wiki/doku.php?id=example_hashes",
        "https://learn.microsoft.com/en-us/openspecs/office_file_formats/ms-offcrypto/74d60145-a0f0-44be-99ce-c65d211b4eb7"
      ],
      "guidePath": "/articles/unlock-old-office-files"
    },
    {
      "id": "office-modern-2007",
      "family": "Office",
      "profile": "OOXML Office 2007 Standard (DOCX/XLSX/PPTX)",
      "protection": "File-opening encryption, AES-128",
      "servicePath": "Assess the original file; eligible hash-only submissions are password-only.",
      "limitations": "The three local examples use this encryption profile, not every modern Office variant. Hash-only processing cannot return an unlocked file.",
      "evidence": "fixture-tested",
      "fixtureIds": [
        "docx",
        "xlsx",
        "pptx"
      ],
      "sourceUrls": [
        "https://hashcat.net/wiki/doku.php?id=example_hashes",
        "https://learn.microsoft.com/en-us/openspecs/office_file_formats/ms-offcrypto/74d60145-a0f0-44be-99ce-c65d211b4eb7"
      ],
      "guidePath": "/articles/excel-password-recovery"
    },
    {
      "id": "office-modern-2010",
      "family": "Office",
      "profile": "OOXML Office 2010 encryption (DOCX/XLSX/PPTX)",
      "protection": "File-opening encryption",
      "servicePath": "Assess the original file; eligible hash-only submissions are password-only.",
      "limitations": "A strong password may remain impractical to recover. This exact profile was not part of the controlled fixture set.",
      "evidence": "configured",
      "fixtureIds": [],
      "sourceUrls": [
        "https://hashcat.net/wiki/doku.php?id=example_hashes",
        "https://learn.microsoft.com/en-us/openspecs/office_file_formats/ms-offcrypto/74d60145-a0f0-44be-99ce-c65d211b4eb7"
      ],
      "guidePath": "/articles/excel-password-recovery"
    },
    {
      "id": "office-modern-2013-plus",
      "family": "Office",
      "profile": "OOXML Office 2013+ encryption (DOCX/XLSX/PPTX)",
      "protection": "File-opening encryption",
      "servicePath": "Assess the original file; eligible hash-only submissions are password-only.",
      "limitations": "The extension alone does not identify the encryption profile. This exact profile was not part of the controlled fixture set.",
      "evidence": "configured",
      "fixtureIds": [],
      "sourceUrls": [
        "https://hashcat.net/wiki/doku.php?id=example_hashes",
        "https://learn.microsoft.com/en-us/openspecs/office_file_formats/ms-offcrypto/74d60145-a0f0-44be-99ce-c65d211b4eb7"
      ],
      "guidePath": "/articles/excel-password-recovery"
    },
    {
      "id": "office-legacy-xls-xor",
      "family": "Office",
      "profile": "Legacy Excel XOR protection",
      "protection": "Legacy workbook obfuscation",
      "servicePath": "Keep the XLS source for assessment and the applicable legacy recovery path.",
      "limitations": "This is a different protection scheme from modern workbook encryption. No encrypted XLS example was tested in this study.",
      "evidence": "configured",
      "fixtureIds": [],
      "sourceUrls": [
        "https://hashcat.net/wiki/doku.php?id=example_hashes",
        "https://learn.microsoft.com/en-us/openspecs/office_file_formats/ms-offcrypto/74d60145-a0f0-44be-99ce-c65d211b4eb7"
      ],
      "guidePath": "/articles/unlock-old-office-files"
    },
    {
      "id": "office-legacy-doc-xor",
      "family": "Office",
      "profile": "Legacy Word XOR protection",
      "protection": "Legacy document obfuscation",
      "servicePath": "Keep the DOC source for assessment and the applicable legacy recovery path.",
      "limitations": "This is a different protection scheme from modern DOCX encryption. No encrypted DOC example was tested in this study.",
      "evidence": "configured",
      "fixtureIds": [],
      "sourceUrls": [
        "https://hashcat.net/wiki/doku.php?id=example_hashes",
        "https://learn.microsoft.com/en-us/openspecs/office_file_formats/ms-offcrypto/74d60145-a0f0-44be-99ce-c65d211b4eb7"
      ],
      "guidePath": "/articles/unlock-old-office-files"
    },
    {
      "id": "pdf-rc4-40-r2",
      "family": "PDF",
      "profile": "PDF revision 2, RC4-40",
      "protection": "File-opening / standard-security encryption",
      "servicePath": "Eligible older PDFs may offer an unlocked copy after source verification.",
      "limitations": "An unlocked PDF is not necessarily recovery of the original typed password. Eligibility is determined from the actual file.",
      "evidence": "configured",
      "fixtureIds": [],
      "sourceUrls": [
        "https://hashcat.net/wiki/doku.php?id=example_hashes",
        "https://opensource.adobe.com/dc-acrobat-sdk-docs/pdfstandards/pdfreference1.4.pdf"
      ],
      "guidePath": "/articles/pdf-password-recovery"
    },
    {
      "id": "pdf-rc4-128-r3-r4",
      "family": "PDF",
      "profile": "PDF revision 3/4, RC4-128",
      "protection": "File-opening / standard-security encryption",
      "servicePath": "Assess the PDF and separate the open password from editing permissions.",
      "limitations": "Hash-only processing is password-only. The controlled open-password example is revision 3, not every revision-4 combination.",
      "evidence": "fixture-tested",
      "fixtureIds": [
        "pdf_open"
      ],
      "sourceUrls": [
        "https://hashcat.net/wiki/doku.php?id=example_hashes",
        "https://opensource.adobe.com/dc-acrobat-sdk-docs/standards/pdfstandards/pdf/PDF32000_2008.pdf"
      ],
      "guidePath": "/articles/pdf-password-recovery"
    },
    {
      "id": "pdf-aes-l3-r5",
      "family": "PDF",
      "profile": "PDF revision 5, AES-256",
      "protection": "File-opening / standard-security encryption",
      "servicePath": "Assess the PDF; eligible hash-only submissions are password-only.",
      "limitations": "No revision-5 example was included in the controlled set. Support does not guarantee finding the password.",
      "evidence": "configured",
      "fixtureIds": [],
      "sourceUrls": [
        "https://hashcat.net/wiki/doku.php?id=example_hashes",
        "https://opensource.adobe.com/dc-acrobat-sdk-docs/standards/pdfstandards/pdf/PDF32000_2008.pdf"
      ],
      "guidePath": "/articles/pdf-password-recovery"
    },
    {
      "id": "pdf-aes-l8-r6",
      "family": "PDF",
      "profile": "PDF revision 6, AES-256",
      "protection": "File-opening / standard-security encryption",
      "servicePath": "Assess the PDF; eligible hash-only submissions are password-only.",
      "limitations": "No revision-6 example was included in the controlled set. Strong passwords can remain impractical to recover.",
      "evidence": "configured",
      "fixtureIds": [],
      "sourceUrls": [
        "https://hashcat.net/wiki/doku.php?id=example_hashes",
        "https://opensource.adobe.com/dc-acrobat-sdk-docs/standards/pdfstandards/pdf/PDF32000_2008.pdf"
      ],
      "guidePath": "/articles/pdf-password-recovery"
    },
    {
      "id": "zipcrypto-stored",
      "family": "ZIP",
      "profile": "ZIP ZipCrypto, stored member",
      "protection": "Traditional ZIP file encryption",
      "servicePath": "Submit the original archive for assessment and candidate verification.",
      "limitations": "The password must open the archive; a matching checksum alone is insufficient. Hash-only intake is not available for this profile.",
      "evidence": "fixture-tested",
      "fixtureIds": [
        "zipcrypto"
      ],
      "sourceUrls": [
        "https://hashcat.net/wiki/doku.php?id=example_hashes",
        "https://www.winzip.com/en/support/aes-encryption/"
      ],
      "guidePath": "/articles/zip-password-recovery"
    },
    {
      "id": "zipcrypto-deflated",
      "family": "ZIP",
      "profile": "ZIP ZipCrypto, deflated member",
      "protection": "Traditional ZIP file encryption",
      "servicePath": "Submit the original archive for assessment and candidate verification.",
      "limitations": "The controlled ZIP example is stored, not deflated. Keep the original archive available for final verification.",
      "evidence": "configured",
      "fixtureIds": [],
      "sourceUrls": [
        "https://hashcat.net/wiki/doku.php?id=example_hashes",
        "https://www.winzip.com/en/support/aes-encryption/"
      ],
      "guidePath": "/articles/zip-password-recovery"
    },
    {
      "id": "zipcrypto-multifile",
      "family": "ZIP",
      "profile": "ZIP ZipCrypto, compressed multi-file",
      "protection": "Traditional ZIP file encryption",
      "servicePath": "Submit the complete original archive for assessment.",
      "limitations": "Different members can carry different protection. The configured profile was not locally fixture-tested here.",
      "evidence": "configured",
      "fixtureIds": [],
      "sourceUrls": [
        "https://hashcat.net/wiki/doku.php?id=example_hashes",
        "https://www.winzip.com/en/support/aes-encryption/"
      ],
      "guidePath": "/articles/zip-password-recovery"
    },
    {
      "id": "zipcrypto-mixed",
      "family": "ZIP",
      "profile": "ZIP ZipCrypto, mixed multi-file",
      "protection": "Traditional ZIP file encryption",
      "servicePath": "Submit the complete original archive for assessment.",
      "limitations": "Member structure and compression matter. The configured profile was not locally fixture-tested here.",
      "evidence": "configured",
      "fixtureIds": [],
      "sourceUrls": [
        "https://hashcat.net/wiki/doku.php?id=example_hashes",
        "https://www.winzip.com/en/support/aes-encryption/"
      ],
      "guidePath": "/articles/zip-password-recovery"
    },
    {
      "id": "zipcrypto-checksum",
      "family": "ZIP",
      "profile": "ZIP ZipCrypto, checksum-oriented multi-file",
      "protection": "Traditional ZIP file encryption",
      "servicePath": "Submit the original archive so a complete encrypted member can be checked.",
      "limitations": "A checksum result alone is not proof that the archive opens. No local example of this profile was tested.",
      "evidence": "configured",
      "fixtureIds": [],
      "sourceUrls": [
        "https://hashcat.net/wiki/doku.php?id=example_hashes",
        "https://www.winzip.com/en/support/aes-encryption/"
      ],
      "guidePath": "/articles/zip-password-recovery"
    },
    {
      "id": "winzip-aes",
      "family": "ZIP",
      "profile": "ZIP WinZip AES",
      "protection": "AES-encrypted ZIP contents",
      "servicePath": "Submit the original archive for assessment and candidate verification.",
      "limitations": "The local example uses AES-256. Other strengths and ZIP variants require their own assessment; a recovered password still has to open the archive.",
      "evidence": "fixture-tested",
      "fixtureIds": [
        "zip_aes256"
      ],
      "sourceUrls": [
        "https://hashcat.net/wiki/doku.php?id=example_hashes",
        "https://www.winzip.com/en/support/aes-encryption/"
      ],
      "guidePath": "/articles/zip-password-recovery"
    },
    {
      "id": "rar3-type0",
      "family": "RAR",
      "profile": "RAR3 with encrypted headers",
      "protection": "Archive encryption including file names",
      "servicePath": "Submit the original archive for assessment; eligible hash-only processing is password-only.",
      "limitations": "No RAR file was created in this study. An accepted hash-only job cannot return an unlocked archive.",
      "evidence": "configured",
      "fixtureIds": [],
      "sourceUrls": [
        "https://hashcat.net/wiki/doku.php?id=example_hashes",
        "https://www.rarlab.com/technote.htm?from=20423"
      ],
      "guidePath": "/articles/rar-password-recovery"
    },
    {
      "id": "rar3-type1-method30",
      "family": "RAR",
      "profile": "RAR3 stored encrypted member",
      "protection": "Encrypted archive member with visible headers",
      "servicePath": "Submit the original archive for assessment and source verification.",
      "limitations": "No RAR fixture was tested. Compression method and source availability determine the appropriate path.",
      "evidence": "configured",
      "fixtureIds": [],
      "sourceUrls": [
        "https://hashcat.net/wiki/doku.php?id=example_hashes",
        "https://www.rarlab.com/technote.htm?from=20423"
      ],
      "guidePath": "/articles/rar-password-recovery"
    },
    {
      "id": "rar3-type1-method33",
      "family": "RAR",
      "profile": "RAR3 compressed encrypted member",
      "protection": "Encrypted archive member with visible headers",
      "servicePath": "Submit the original archive for assessment and source verification.",
      "limitations": "No RAR fixture was tested. Larger member records can require a different processing path.",
      "evidence": "configured",
      "fixtureIds": [],
      "sourceUrls": [
        "https://hashcat.net/wiki/doku.php?id=example_hashes",
        "https://www.rarlab.com/technote.htm?from=20423"
      ],
      "guidePath": "/articles/rar-password-recovery"
    },
    {
      "id": "rar3-type1-john-fallback",
      "family": "RAR",
      "profile": "RAR3 larger or alternate compressed member",
      "protection": "Encrypted archive member; conditional compatibility",
      "servicePath": "Submit the original archive for an individual compatibility assessment.",
      "limitations": "This is a conditional fallback, not blanket support for every RAR3 method. No local fixture was tested.",
      "evidence": "configured",
      "fixtureIds": [],
      "sourceUrls": [
        "https://hashcat.net/wiki/doku.php?id=example_hashes",
        "https://www.rarlab.com/technote.htm?from=20423"
      ],
      "guidePath": "/articles/rar-password-recovery"
    },
    {
      "id": "rar5",
      "family": "RAR",
      "profile": "RAR5",
      "protection": "Modern archive encryption",
      "servicePath": "Submit the original archive for assessment; eligible hash-only processing is password-only.",
      "limitations": "No RAR5 fixture was tested. A header-only or hash-only submission cannot provide an unlocked archive.",
      "evidence": "configured",
      "fixtureIds": [],
      "sourceUrls": [
        "https://hashcat.net/wiki/doku.php?id=example_hashes",
        "https://www.rarlab.com/technote.htm?from=20423"
      ],
      "guidePath": "/articles/rar-password-recovery"
    },
    {
      "id": "7z-aes-clear-header",
      "family": "7z",
      "profile": "7z AES-256, visible file names",
      "protection": "Encrypted archive contents",
      "servicePath": "Submit the original 7z archive for assessment and source verification.",
      "limitations": "The local example has encrypted file names instead. Not every compression/coder combination is supported.",
      "evidence": "configured",
      "fixtureIds": [],
      "sourceUrls": [
        "https://hashcat.net/wiki/doku.php?id=example_hashes",
        "https://www.7-zip.org/7z.html"
      ],
      "guidePath": "/articles/7z-password-recovery"
    },
    {
      "id": "7z-aes-encrypted-headers",
      "family": "7z",
      "profile": "7z AES-256, encrypted file names",
      "protection": "Encrypted contents and archive header",
      "servicePath": "Submit the original 7z archive for assessment and source verification.",
      "limitations": "Keep the complete original archive. This local example does not establish support for every coder combination or password.",
      "evidence": "fixture-tested",
      "fixtureIds": [
        "sevenzip_aes"
      ],
      "sourceUrls": [
        "https://hashcat.net/wiki/doku.php?id=example_hashes",
        "https://www.7-zip.org/7z.html"
      ],
      "guidePath": "/articles/7z-password-recovery"
    },
    {
      "id": "pdf-permissions-only",
      "family": "PDF",
      "profile": "PDF permissions only, empty open password",
      "protection": "Owner/permissions restriction; file already opens",
      "servicePath": "Check authorised editing or export options in the PDF application before choosing a password search.",
      "limitations": "The controlled example opens with an empty user password. It does not represent a forgotten open password or guarantee a permissions-removal service.",
      "evidence": "fixture-tested",
      "fixtureIds": [
        "pdf_owner_only"
      ],
      "sourceUrls": [
        "https://developer.adobe.com/document-services/apis/pdf-services/secure-pdf/"
      ],
      "guidePath": "/articles/pdf-owner-vs-open-password"
    }
  ],
  "scope": "Configured profile paths plus local controlled-file checks; not end-to-end production recovery, search speed or customer win rate.",
  "omittedUnsupportedCases": [
    "Legacy PowerPoint XOR",
    "Unknown PDF revision",
    "Unextractable ZIP encryption variant",
    "Unsupported 7z coder combination"
  ]
}