diff --git a/src/dicognito/__main__.py b/src/dicognito/__main__.py
index 985de48..e9d01dc 100644
--- a/src/dicognito/__main__.py
+++ b/src/dicognito/__main__.py
@@ -61,10 +61,10 @@ def main(args=None):
         help="Set the log level. May be one of DEBUG, INFO, WARNING, ERROR, or CRITICAL.",
     )
     parser.add_argument(
-        "--salt",  # currently only intended to make testing easier
-        help="The salt to use when generating random attribute values. Primarily "
+        "--seed",  # currently only intended to make testing easier
+        help="The seed to use when generating random attribute values. Primarily "
         "intended to make testing easier. Best anonymization practice is to omit "
-        "this value and let dicognito generate its own random salt.",
+        "this value and let dicognito generate its own random seed.",
     )
     parser.add_argument("--version", action="version", version=dicognito.__version__)
 
@@ -75,7 +75,7 @@ def main(args=None):
         raise ValueError("Invalid log level: %s" % args.log_level)
     logging.basicConfig(format="", level=numeric_level)
 
-    anonymizer = Anonymizer(id_prefix=args.id_prefix, id_suffix=args.id_suffix, salt=args.salt)
+    anonymizer = Anonymizer(id_prefix=args.id_prefix, id_suffix=args.id_suffix, seed=args.seed)
 
     ConvertedStudy = collections.namedtuple("ConvertedStudy", ["AccessionNumber", "PatientID", "PatientName"])
 
diff --git a/src/dicognito/anonymizer.py b/src/dicognito/anonymizer.py
index 5722d98..8fe4912 100644
--- a/src/dicognito/anonymizer.py
+++ b/src/dicognito/anonymizer.py
@@ -39,7 +39,7 @@ class Anonymizer:
     >>>         dataset.save_as("new-" + filename)
     """
 
-    def __init__(self, id_prefix="", id_suffix="", salt=None):
+    def __init__(self, id_prefix="", id_suffix="", seed=None):
         """\
         Create a new Anonymizer.
 
@@ -51,13 +51,13 @@ class Anonymizer:
         id_suffix : str
             A prefix to add to all unstructured ID fields, such as Patient
             ID, Accession Number, etc.
-        salt
+        seed
             Not intended for general use. Seeds the data randomizer in order
             to produce consistent results. Used for testing.
         """
         minimum_offset_hours = 62 * 24
         maximum_offset_hours = 730 * 24
-        randomizer = Randomizer(salt)
+        randomizer = Randomizer(seed)
         address_anonymizer = AddressAnonymizer(randomizer)
         self._element_handlers = [
             UnwantedElementsStripper(
diff --git a/src/dicognito/randomizer.py b/src/dicognito/randomizer.py
index 589df27..cbcf4c9 100644
--- a/src/dicognito/randomizer.py
+++ b/src/dicognito/randomizer.py
@@ -3,20 +3,20 @@ import os
 
 
 class Randomizer:
-    def __init__(self, salt):
+    def __init__(self, seed):
         """\
         Create a new Randomizer.
 
         Parameters
         ----------
-        salt
+        seed
             Not intended for general use. Seeds the data randomizer so it
             produces consistent results when anonymizing elements with the
             same initial values.
         """
-        if salt is None:
-            salt = os.urandom(20)
-        self.salt = str(salt)
+        if seed is None:
+            seed = os.urandom(20)
+        self.seed = str(seed)
 
     def to_int(self, original_value):
         """\
@@ -28,7 +28,7 @@ class Randomizer:
         original_value
             The original value that will ultimately be replaced.
         """
-        message = self.salt + str(original_value)
+        message = self.seed + str(original_value)
         if isinstance(message, bytes):
             encoded = message
             hash = [ord(d) for d in hashlib.md5(encoded).digest()]
diff --git a/src/dicognito/release_notes.md b/src/dicognito/release_notes.md
index 9f3a779..56c75b1 100644
--- a/src/dicognito/release_notes.md
+++ b/src/dicognito/release_notes.md
@@ -1,3 +1,7 @@
+### Changed
+
+- Renamed "salt" to "seed" in command-line tool and `Anonymizer` class ([#49](https://github.com/blairconrad/dicognito/issues/49))
+
 ### New
 
 - Provide `--version` flag and `__version__` attribute ([#47](https://github.com/blairconrad/dicognito/issues/47))

Rename salt to seed
From the outside, it should be billed as a seed for randomness, even though inside `Randomizer`, it's used as a salt when hashing values.
diff --git a/tests/test_commandline.py b/tests/test_commandline.py
index 24dc9ba..91933a8 100644
--- a/tests/test_commandline.py
+++ b/tests/test_commandline.py
@@ -41,9 +41,9 @@ def test_summary_mixed_files_reports_on_each_study(capsys):
     expected_output = """\
 Accession Number Patient ID       Patient Name
 ---------------- ----------       ------------
-DRVN05NEDUYD     2S183ZNON7HU     RICHMOND^MARCY^NITA
-8NZGNEJWE7QA     NPC1XHSJT51Z     MORROW^SUSANNA^LUCIEN
-SXJXM4HE90EO     NPC1XHSJT51Z     MORROW^SUSANNA^LUCIEN
+HGED6DXQTO1F     DQFZ0HDKPYUX     JENSEN^KELLIE^PATRICK
+XV266HDCGIOH     DQFZ0HDKPYUX     JENSEN^KELLIE^PATRICK
+UUM68P1IJHBE     LXO0DMOPN7PV     BUCHANAN^ALBA^MADGE
 """
     run_dicognito(path_to("p*"))
     (actual_output, actual_error) = capsys.readouterr()
@@ -125,7 +125,7 @@ def path_to(end_of_path):
 
 
 def run_dicognito(*extra_args):
-    dicognito.__main__.main(("--salt", "salt for test") + extra_args)
+    dicognito.__main__.main(("--seed", "") + extra_args)
 
 
 def read_file(*directory_parts):

pip install -e .[dev]
parse_log_pytest
pytest
pytest pytest-black flake8
apt-get update apt-get install -y gcc
3.7
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
attrs @ file:///croot/attrs_1668696182826/work
black==23.3.0
certifi @ file:///croot/certifi_1671487769961/work/certifi
click==8.1.8
-e git+https://github.com/blairconrad/dicognito.git@074b20b1c550b48b0295abeb90d99ca5c87bc811#egg=dicognito
flake8==5.0.4
flit_core @ file:///opt/conda/conda-bld/flit-core_1644941570762/work/source/flit_core
importlib-metadata==4.2.0
iniconfig @ file:///home/linux1/recipes/ci/iniconfig_1610983019677/work
mccabe==0.7.0
mypy-extensions==1.0.0
packaging @ file:///croot/packaging_1671697413597/work
pathspec==0.11.2
platformdirs==4.0.0
pluggy @ file:///tmp/build/80754af9/pluggy_1648042572264/work
py @ file:///opt/conda/conda-bld/py_1644396412707/work
pycodestyle==2.9.1
pydicom==2.4.4
pyflakes==2.5.0
pytest==7.1.2
pytest-black==0.6.0
toml==0.10.2
tomli @ file:///opt/conda/conda-bld/tomli_1657175507142/work
typed-ast==1.5.5
typing_extensions==4.7.1
zipp @ file:///croot/zipp_1672387121353/work

name: dicognito
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - attrs=22.1.0=py37h06a4308_0
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2022.12.7=py37h06a4308_0
  - flit-core=3.6.0=pyhd3eb1b0_0
  - importlib_metadata=4.11.3=hd3eb1b0_0
  - iniconfig=1.1.1=pyhd3eb1b0_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - packaging=22.0=py37h06a4308_0
  - pip=22.3.1=py37h06a4308_0
  - pluggy=1.0.0=py37h06a4308_1
  - py=1.11.0=pyhd3eb1b0_0
  - pytest=7.1.2=py37h06a4308_0
  - python=3.7.16=h7a1cb2a_0
  - readline=8.2=h5eee18b_0
  - setuptools=65.6.3=py37h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tomli=2.0.1=py37h06a4308_0
  - wheel=0.38.4=py37h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zipp=3.11.0=py37h06a4308_0
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - black==23.3.0
      - click==8.1.8
      - dicognito==0.6.0
      - flake8==5.0.4
      - importlib-metadata==4.2.0
      - mccabe==0.7.0
      - mypy-extensions==1.0.0
      - pathspec==0.11.2
      - platformdirs==4.0.0
      - pycodestyle==2.9.1
      - pydicom==2.4.4
      - pyflakes==2.5.0
      - pytest-black==0.6.0
      - toml==0.10.2
      - typed-ast==1.5.5
      - typing-extensions==4.7.1
prefix: /opt/conda/envs/dicognito

tests/test_commandline.py::test_ignores_file_that_do_not_match_glob
tests/test_commandline.py::test_overwrite_files tests/test_commandline.py::test_summary_mixed_files_reports_on_each_study tests/test_commandline.py::test_summary_with_quiet_no_report tests/test_commandline.py::test_directory_is_recursed tests/test_commandline.py::test_non_dicom_files_ignored tests/test_commandline.py::test_non_dicom_files_logged_at_info
src/dicognito/release_notes.md src/dicognito/randomizer.py src/dicognito/__main__.py src/dicognito/anonymizer.py
src/dicognito/release_notes.md src/dicognito/randomizer.py src/dicognito/__main__.py src/dicognito/anonymizer.py