You have created a modpack and a modded server, and you want to make sure that your friend connects with the right mods, that he has not altered them. For example, he could delete some of them or add the xray.jar mod. Something you don't want of course.
When you create the modpack and the modded server, you will also have to create a file called integrity.json, this file will contain the names of the jar files as well as their respective hash for the mods you put in the original modpack. This file will have to be copied in the config folder of the server inside the folder called Integrity (If the Integrity folder doesn't exist, you can start the server once with the Integrity mod, it will then be created)
concerning the hash of the files, be sure to use the SHA-256 algorithm and that the hash is in lower case
check this video to understand how it works -> https://youtu.be/HDsvAae6k78 also a sample file integrity.json can be found here https://github.com/AmibeSkyfy16/Integrity/blob/master/samples/version 0.0.2/integrity.json
How does it work internally ?
When you connect to the server, you send at the same time data in json format representing the names of the mods in the modpack and their hashes. When the server receives the data, it compares it with its own data from the configuration files (integrity.json). If the data you sent matches the integrity.json file, then you will be allowed to play on the server. Otherwise, you will be disconnected.
-------------- OLD DESCRIPTION TO DELETE --------------
This mod allows to check the mods present on the client, when it connects to a server. The server has a file called modpack-mods-list.json which contains the mods that must be present on the client (You have to manually configure this either by putting the mods you want the client to have when it connects). When the client connects to the server, the client sends the names of the .jar files for each mods present in the mods folder. The server then checks if the mods sent match the list. If it does, the player will not be disconnected.
IMPORTANT: the fileHash has to use the SHA-256 algorithm
check this video to understand how it works -> https://youtu.be/HDsvAae6k78